Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Original Authors:

Balint Joo, Jefferson Lab email: bjoo AT jab.org
Dhiraj D. Kalamkar, Intel Parallel Computing Labs, Bangalore, India email: dhiraj.d.kalamkar AT intel.com
Karthikeyan Vaidyanathan, Intel Parallel Computing Labs, Bangalore, India email: karthikeyan.vaidyanathan AT intel.com
Mikhail Smelyanskiy, Intel Parallel Computing Labs, Santa Clara, USA email: mikhail.smelianskiy AT intel.com

Contributors:
*) Thorsten Kurth (LBL)
*) Aaron Walden (ODU) - for integrating the AVX512 output from the code-generator and testing in Intel SDE

*) Mario Schroeck (INFN) (mario.schroeck AT roma3.infn.it) and Alexei Strelchenko (FNAL, astrel AT fnal.gov) - for work on the Twisted Mass Fermion (qphix-tmf) branch
*) Peter Labus (HISKP Uni Bonn + SISSA) (plabus AT sissa.it) - work on twisted mass and twisted clover operators
*) Martin Ueding (HISKP Uni Bonn) () - cleanup of codebase and tests, overhaul of QPhiX build system, merge of code generator,
work on twisted, twisted clover, non-degenerate twisted, non-degenerate twisted clover, Hasenbusch-style mass
preconditioning for Wilson clover operator
*) Bartosz Kostrzewa (HISKP, Uni Bonn) (bartosz_kostrzewa AT fastmail.com) - work on twisted, twisted clover,
non-degenerate twisted, non-degenerate twisted clover

*) Diptorup Deb, RENCI University of North Carolina Chapel Hill (diptorup AT cs.unc.edu)-is working on portability to other compilers

*) Thanks to Kiran Pamnany, Intel Parallel Computing Labs, Bangalore, India for the MIC Barrier routine (Barrier_mic.h) email: kiran.pamndany AT intel.com
14 changes: 13 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
cmake_minimum_required(VERSION 3.1)
project(QPhiX)
include(CTest)
include(CheckFunctionExists)
include(CheckIncludeFiles)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_EXTENSIONS OFF)
Expand Down Expand Up @@ -31,9 +33,19 @@ option(mpi_comms "Use plain MPI comms instead of QMP in the kernels" ON)
# Codegen stuff
set(host_cxx ${CMAKE_CXX_COMPILER} CACHE STRING "select target CXX Compiler for building libqphix-codegen.a" )
set(host_cxxflags ${CMAKE_CXX_FLAGS} CACHE STRING "select target CXXFLAGS for building libqphix-codege.a")
set(recursive_jN '' CACHE STRING "select -j value for recursive make (defaults to 1)")
set(recursive_jN 1 CACHE STRING "select -j value for recursive make (defaults to 1)")
option(skip_build "Developer only: Reduce building of certain kernels for faster build" OFF)

###############################################################################
# check system includes #
###############################################################################
check_function_exists(sysconf QPHIX_HAVE_SYSCONF)
check_include_files("sys/sysctl.h" QPHIX_HAVE_SYSCTL)

if(NOT DEFINED QPHIX_HAVE_SYSCONF OR NOT DEFINED QPHIX_HAVE_SYSCTL)
message(FATAL_ERROR "either sysconf or sys/sysctl.h must be available")
endif()

###############################################################################

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
Expand Down
2 changes: 2 additions & 0 deletions include/qphix/qphix_config_internal.h.in.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
#cmakedefine QPHIX_SCALAR_SOURCE
#cmakedefine QPHIX_BUILD_QDPJIT
#cmakedefine QPHIX_MPI_COMMS_CALLS
#cmakedefine QPHIX_HAVE_SYSCONF
#cmakedefine QPHIX_HAVE_SYSCTL

#define QPHIX_LLC_CACHE_ALIGN @QPHIX_LLC_CACHE_ALIGN@
#endif
4 changes: 4 additions & 0 deletions include/qphix/tsc.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

// Stuff for rdtsc
#include <sys/types.h>
#ifdef QPHIX_HAVE_SYSCONF
// no need for any headers
#elif defined QPHIX_HAVE_SYSCTL
#include <sys/sysctl.h>
#endif

typedef long long TSC_tick;
#define CLOCK_NOW(a) (a) = __rdtsc()