Skip to content

Commit

Permalink
Merge pull request #462 from fmihpc/dev
Browse files Browse the repository at this point in the history
Merge dev into master for Vlasiator 5.0 release
  • Loading branch information
ursg committed Feb 5, 2020
2 parents 02fc4d5 + a8dacd2 commit d8c3a01
Show file tree
Hide file tree
Showing 242 changed files with 20,360 additions and 8,762 deletions.
9 changes: 5 additions & 4 deletions MAKE/Makefile.appa
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,12 @@ FLAGS =
#GNU flags:
CC_BRAND = gcc
CC_BRAND_VERSION = 5.4.0
CXXFLAGS += -O3 -fopenmp -funroll-loops -std=c++11 -W -Wall -Wno-unused -fabi-version=0 -mavx2
CXXFLAGS += -g -O2 -fopenmp -funroll-loops -std=c++11 -W -Wall -Wno-unused -fabi-version=0 -mavx2
#CXXFLAGS += -g -fopenmp -funroll-loops -std=c++11 -W -Wall -Wno-unused -fabi-version=0 -mavx2
testpackage: CXXFLAGS = -O2 -fopenmp -funroll-loops -std=c++0x -fabi-version=0 -mavx

MATHFLAGS = -ffast-math
LDFLAGS =
LDFLAGS = -g
LIB_MPI = -lgomp

# BOOST_VERSION = current trilinos version
Expand Down Expand Up @@ -89,8 +90,8 @@ LIB_PAPI = -L$(LIBRARY_PREFIX)/papi/lib -lpapi

INC_EIGEN = -I$(LIBRARY_PREFIX)/eigen/
INC_DCCRG = -I$(LIBRARY_PREFIX)/dccrg/
INC_VECTORCLASS = -I$(LIBRARY_PREFIX)/vectorclass/
INC_FSGRID = -I$(LIBRARY_PREFIX)/fsgrid/
INC_VECTORCLASS = -I$(LIBRARY_PREFIX)/vectorclass
INC_FSGRID = -I$(LIBRARY_PREFIX)/fsgrid



88 changes: 88 additions & 0 deletions MAKE/Makefile.docker
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# -*- mode: makefile -*-
CMP = mpic++
LNK = mpic++

#======== Vectorization ==========
#Set vector backend type for vlasov solvers, sets precision and length.
#NOTE this has to have the same precision as the distribution function define (DISTRIBUTION_FP_PRECISION)
#Options:
# AVX: VEC4D_AGNER, VEC4F_AGNER, VEC8F_AGNER
# AVX512: VEC8D_AGNER, VEC16F_AGNER
# Fallback: VEC4D_FALLBACK, VEC4F_FALLBACK, VEC8F_FALLBACK

ifeq ($(DISTRIBUTION_FP_PRECISION),SPF)
#Single-precision
VECTORCLASS = VEC8F_AGNER
else
#Double-precision
VECTORCLASS = VEC4D_AGNER
endif

#======== PAPI ==========
#Add PAPI_MEM define to use papi to report memory consumption?
CXXFLAGS += -DPAPI_MEM


#======== Allocator =========
#Use jemalloc instead of system malloc to reduce memory fragmentation? https://github.com/jemalloc/jemalloc
#Configure jemalloc with --with-jemalloc-prefix=je_ when installing it
CXXFLAGS += -DUSE_JEMALLOC -DJEMALLOC_NO_DEMANGLE


#======= Compiler and compilation flags =========
# NOTES on compiler flags:
# CXXFLAGS is for compiler flags, they are always used
# MATHFLAGS are for special math etc. flags, these are only applied on solver functions
# LDFLAGS flags for linker

#-DNO_WRITE_AT_ALL: Define to disable write at all to
# avoid memleak (much slower IO)
#-DMPICH_IGNORE_CXX_SEEK: Ignores some multiple definition
# errors that come up when using
# mpi.h in c++ on Cray

CXXFLAGS += -DMPICH_IGNORE_CXX_SEEK

FLAGS =

#GNU flags:
CXXFLAGS += -O3 -fopenmp -funroll-loops -std=c++11 -W -Wall -Wno-unused -fabi-version=0 -mavx2
testpackage: CXXFLAGS = -O2 -fopenmp -funroll-loops -std=c++0x -fabi-version=0 -mavx

MATHFLAGS = -ffast-math
LDFLAGS = -g
LIB_MPI = -lgomp

# BOOST_VERSION = current trilinos version
# ZOLTAN_VERSION = current trilinos verson

#======== Libraries ===========

LIBRARY_PREFIX = /home/lib


#compiled libraries
INC_BOOST = -I$/usr/include/boost
LIB_BOOST = -L$/usr/lib/x86_64-linux-gnu -lboost_program_options

INC_ZOLTAN = -I$(LIBRARY_PREFIX)/zoltan/include
LIB_ZOLTAN = -L$(LIBRARY_PREFIX)/zoltan/lib -lzoltan

INC_JEMALLOC = -I$(LIBRARY_PREFIX)/jemalloc/include
LIB_JEMALLOC = -L$(LIBRARY_PREFIX)/jemalloc/lib -ljemalloc

INC_VLSV = -I$(LIBRARY_PREFIX)/vlsv
LIB_VLSV = -L$(LIBRARY_PREFIX)/vlsv -lvlsv

INC_PROFILE = -I$(LIBRARY_PREFIX)/phiprof-2.0-beta/include
LIB_PROFILE = -L$(LIBRARY_PREFIX)/phiprof-2.0-beta/lib -lphiprof

INC_PAPI = -I$(LIBRARY_PREFIX)/papi/include
LIB_PAPI = -L$(LIBRARY_PREFIX)/papi/lib -lpapi

#header libraries

INC_EIGEN = -I/usr/include/eigen3
INC_DCCRG = -I$(LIBRARY_PREFIX)/dccrg/
INC_VECTORCLASS = -I$(LIBRARY_PREFIX)/vectorclass
INC_FSGRID = -I$(LIBRARY_PREFIX)/fsgrid
74 changes: 44 additions & 30 deletions MAKE/Makefile.hornet_gcc
Original file line number Diff line number Diff line change
@@ -1,15 +1,31 @@
CMP = CC
LNK = CC
#-Wl,--allow-multiple-definition
LNK = CC

not_parallel_tools: CMP = g++
not_parallel_tools: LNK = g++
#======== Vectorization ==========
#Set vector backend type for vlasov solvers, sets precision and length.
#Options:
# AVX: VEC4D_AGNER, VEC4F_AGNER, VEC8F_AGNER
# AVX512: VEC8D_AGNER, VEC16F_AGNER
# Fallback: VEC4D_FALLBACK, VEC4F_FALLBACK, VEC8F_FALLBACK

ifeq ($(DISTRIBUTION_FP_PRECISION),SPF)
#Single-precision
VECTORCLASS = VEC16F_AGNER
else
#Double-precision
VECTORCLASS = VEC8D_AGNER
endif

#======== PAPI ==========
#Add PAPI_MEM define to use papi to report memory consumption?
CXXFLAGS += -DPAPI_MEM


#======== Allocator =========
#Use jemalloc instead of system malloc to reduce memory fragmentation? https://github.com/jemalloc/jemalloc
#Configure jemalloc with --with-jemalloc-prefix=je_ when installing it
CXXFLAGS += -DUSE_JEMALLOC -DJEMALLOC_NO_DEMANGLE

#-DNO_WRITE_AT_ALL: Define to disable write at all to
# avoid memleak (much slower IO)
#-DMPICH_IGNORE_CXX_SEEK: Ignores some multiple definition
# errors that come up when using
# mpi.h in c++ on Cray

CXXFLAGS = -DMPICH_IGNORE_CXX_SEEK

Expand All @@ -22,53 +38,51 @@ FLAGS =

#GNU flags:
CC_BRAND = gcc
CC_BRAND_VERSION = 5.2.0
CXXFLAGS += -O3 -fopenmp -funroll-loops -std=c++0x -W -Wall -Wno-unused -fabi-version=0 -mavx2
#CXXFLAGS += -O3 -fopenmp -funroll-loops -std=c++0x -W -Wall -Wno-unused -fabi-version=0 -mavx
CC_BRAND_VERSION = 8.3.0
CXXFLAGS += -g -O3 -fopenmp -funroll-loops -std=c++17 -W -Wall -Wno-unused -fabi-version=0 -mavx2 -Wall -Wpedantic
#CXXFLAGS += -O3 -fopenmp -funroll-loops -std=c++17 -W -Wall -Wno-unused -fabi-version=0 -mavx
not_parallel_tools: CXXFLAGS += -march=native -mno-avx2 -mavx
testpackage: CXXFLAGS = -O2 -fopenmp -funroll-loops -std=c++0x -fabi-version=0
testpackage: CXXFLAGS = -g -O2 -fopenmp -funroll-loops -std=c++17 -fabi-version=0
not_parallel_tools: CC_BRAND_VERSION = 4.9.2-noavx2

MATHFLAGS = -ffast-math
LDFLAGS =
LIB_MPI = -lgomp

BOOST_VERSION = 1.56.0
MPT_VERSION = 7.1.3
ZOLTAN_VERSION = 3.8
SILO_VERSION = 4.9.1
JEMALLOC_VERSION = 4.0.4
LIBRARY_PREFIX = /zhome/academic/HLRS/pri/iprurgan/vlasiator/libraries
BOOST_VERSION =
MPT_VERSION = 7.7.6
ZOLTAN_VERSION =
SILO_VERSION =
JEMALLOC_VERSION = 5.2.1
LIBRARY_PREFIX = /zhome/academic/HLRS/pri/ipryakem/libraries


#compiled libraries

INC_BOOST = -I$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/boost/$(BOOST_VERSION)/include
LIB_BOOST = -L$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/boost/$(BOOST_VERSION)/lib -lboost_program_options
INC_BOOST = -I$(CRAY_TRILINOS_PREFIX_DIR)/include/boost
LIB_BOOST = -L$(CRAY_TRILINOS_PREFIX_DIR)/lib -lboost_program_options

INC_ZOLTAN = -I$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/zoltan/$(ZOLTAN_VERSION)/include
LIB_ZOLTAN = -L$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/zoltan/$(ZOLTAN_VERSION)/lib -lzoltan
INC_ZOLTAN = -I$(CRAY_TRILINOS_PREFIX_DIR)/include
LIB_ZOLTAN = -L$(CRAY_TRILINOS_PREFIX_DIR)/lib -lzoltan

INC_SILO = -I$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/silo/$(SILO_VERSION)/include
LIB_SILO = -L$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/silo/$(SILO_VERSION)/lib -lsilo
#INC_SILO = -I$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/silo/$(SILO_VERSION)/include
#LIB_SILO = -L$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/silo/$(SILO_VERSION)/lib -lsilo

INC_JEMALLOC = -I$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/jemalloc/$(JEMALLOC_VERSION)/include
LIB_JEMALLOC = -L$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/jemalloc/$(JEMALLOC_VERSION)/lib -ljemalloc

INC_VLSV = -I$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/vlsv
LIB_VLSV = -L$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/vlsv -lvlsv


LIB_PROFILE = -L$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/phiprof/lib -lphiprof
#LIB_PROFILE = $(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/phiprof/lib/libphiprof.a
INC_PROFILE = -I$(LIBRARY_PREFIX)/mpich2/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/phiprof/include

#header libraries

INC_EIGEN = -I$(LIBRARY_PREFIX)/eigen/
INC_EIGEN = -I$(LIBRARY_PREFIX)/
INC_DCCRG = -I$(LIBRARY_PREFIX)/dccrg/
INC_FSGRID = -I/zhome/academic/HLRS/pri/ipryakem/fsgrid/
INC_VECTORCLASS = -I$(LIBRARY_PREFIX)/vectorclass
INC_FSGRID = -I$(LIBRARY_PREFIX)/fsgrid/
INC_VECTORCLASS = -I$(LIBRARY_PREFIX)/vectorclass-version1



Expand Down
96 changes: 96 additions & 0 deletions MAKE/Makefile.puhti_gcc
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
CMP = mpic++
LNK = mpic++

#======== Vectorization ==========
#Set vector backend type for vlasov solvers, sets precision and length.
#Options:
# AVX: VEC4D_AGNER, VEC4F_AGNER, VEC8F_AGNER
# AVX512: VEC8D_AGNER, VEC16F_AGNER
# Fallback: VEC4D_FALLBACK, VEC4F_FALLBACK, VEC8F_FALLBACK

ifeq ($(DISTRIBUTION_FP_PRECISION),SPF)
#Single-precision
VECTORCLASS = VEC8F_AGNER
else
#Double-precision
VECTORCLASS = VEC4D_AGNER
endif

#======== PAPI ==========
#Add PAPI_MEM define to use papi to report memory consumption?
#CXXFLAGS += -DPAPI_MEM


#======== Allocator =========
#Use jemalloc instead of system malloc to reduce memory fragmentation? https://github.com/jemalloc/jemalloc
#Configure jemalloc with --with-jemalloc-prefix=je_ when installing it
#CXXFLAGS += -DUSE_JEMALLOC -DJEMALLOC_NO_DEMANGLE


#======= Compiler and compilation flags =========
# NOTES on compiler flags:
# CXXFLAGS is for compiler flags, they are always used
# MATHFLAGS are for special math etc. flags, these are only applied on solver functions
# LDFLAGS flags for linker

#-DNO_WRITE_AT_ALL: Define to disable write at all to
# avoid memleak (much slower IO)
#-DMPICH_IGNORE_CXX_SEEK: Ignores some multiple definition
# errors that come up when using
# mpi.h in c++ on Cray

CXXFLAGS = -DMPICH_IGNORE_CXX_SEEK

FLAGS =

#GNU flags:
CC_BRAND = gcc
CC_BRAND_VERSION = 9.1.0
CXXFLAGS += -g -O3 -fopenmp -funroll-loops -std=c++17 -W -Wall -Wno-unused -fabi-version=0 -march=native -mavx2 -mfma
testpackage: CXXFLAGS = -O2 -fopenmp -funroll-loops -std=c++17 -fabi-version=0 -mavx2 -mfma

MATHFLAGS = -ffast-math
LDFLAGS = -lrt
LIB_MPI = -lgomp

# BOOST_VERSION = current trilinos version
# ZOLTAN_VERSION = current trilinos verson
#
#======== Libraries ===========

MPT_VERSION = 2.4.0
JEMALLOC_VERSION = 5.2.1
LIBRARY_PREFIX = /projappl/project_2000203/libraries


#compiled libraries
#INC_BOOST = -I$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/boost/1.61.0/include/
#LIB_BOOST = -L$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/boost/1.61.0/lib -lboost_program_options
LIB_BOOST = -lboost_program_options

INC_ZOLTAN = -I$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/zoltan/3.8/include
LIB_ZOLTAN = -L$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/zoltan/3.8/lib -lzoltan

#INC_JEMALLOC = -I$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/jemalloc/$(JEMALLOC_VERSION)/include
#LIB_JEMALLOC = -L$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/jemalloc/$(JEMALLOC_VERSION)/lib -ljemalloc -Wl,-rpath=$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/jemalloc/$(JEMALLOC_VERSION)/lib

INC_VLSV = -I$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/vlsv
LIB_VLSV = -L$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/vlsv -lvlsv

LIB_PROFILE = -L$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/phiprof/lib -lphiprof -lgfortran -Wl,-rpath=$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/phiprof/lib
INC_PROFILE = -I$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/phiprof/include

LIB_PAPI = -L$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/papi/lib -lpapi -Wl,-rpath=$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/papi/lib
INC_PAPI = -I$(LIBRARY_PREFIX)/hpcx-mpi/$(MPT_VERSION)/$(CC_BRAND)/$(CC_BRAND_VERSION)/papi/include


#header libraries

INC_FSGRID = -I$(LIBRARY_PREFIX)/fsgrid
INC_EIGEN = -I$(LIBRARY_PREFIX)/eigen/3.3.7/
INC_DCCRG = -I$(LIBRARY_PREFIX)/dccrg/
INC_VECTORCLASS = -I$(LIBRARY_PREFIX)/vectorclass




Loading

0 comments on commit d8c3a01

Please sign in to comment.