Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
solverstack
ScalFMM
Commits
6fbff0e0
Commit
6fbff0e0
authored
Jun 30, 2015
by
COULAUD Olivier
Browse files
Add features
parent
033d7e94
Changes
5
Hide whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
6fbff0e0
...
...
@@ -117,8 +117,8 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_SOURCE_DIR}/CMakeModules/morse/")
IF
(
APPLE
)
set
(
SSE_FLAGS
"-msse4 -mfpmath=sse"
)
# -mtune=native -march=native
else
(
APPLE
)
set
(
AVX_FLAGS
"-mavx
"
)
set
(
AVX2_FLAGS
"-march=core-avx2
"
)
set
(
AVX_FLAGS
"-ma
rch=native -axCORE-AVX2,CORE-AVX-I,AVX"
)
#-ma
vx
set
(
AVX2_FLAGS
"-march=
native -axCORE-AVX2,CORE-AVX-I"
)
#-march=
core-avx2
set
(
SSE_FLAGS
"-axSSE4.2 -march=native"
)
endif
(
APPLE
)
#-Wshadow -Wpointer-arith -Wcast-qual -Wconversion -Wall -Wnosign-conversion ")
...
...
@@ -189,7 +189,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_SOURCE_DIR}/CMakeModules/morse/")
# if compiler is intel add -ip
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"Intel"
)
set
(
SCALFMM_CXX_FLAGS
"
${
SCALFMM_CXX_FLAGS
}
-ip -no-prec-div -no-prec-sqrt"
)
set
(
SCALFMM_CXX_FLAGS
"
${
SCALFMM_CXX_FLAGS
}
-ip
o -fstrict-aliasing "
)
#
-no-prec-div -no-prec-sqrt")
endif
()
# Compile optimization
if
(
APPLE
)
...
...
@@ -627,13 +627,14 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_SOURCE_DIR}/CMakeModules/morse/")
If
(
SCALFMM_USE_EZTRACE
)
find_package
(
PkgConfig
)
if
(
PKG_CONFIG_FOUND
)
MESSAGE
(
WARNING
"PKG-CONFIG found"
)
set
(
PKG_CONFIG_USE_CMAKE_PREFIX_PATH
"ON"
)
pkg_search_module
(
EZTrace REQUIRED eztrace
)
link_directories
(
${
EZTrace_LIBRARY_DIRS
}
)
link_libraries
(
${
EZTrace_LIBRARIES
}
-leztrace-memory
)
include_directories
(
${
EZTrace_INCLUDE_DIRS
}
)
MESSAGE
(
WARNING
"EZTRACE:
${
EZTrace_INCLUDE_DIRS
}
${
EZTrace_LIBRARY_DIRS
}
${
EZTrace_LIBRARIES
}
"
)
MESSAGE
(
STATUS
"EZTRACE:
${
EZTrace_INCLUDE_DIRS
}
${
EZTrace_LIBRARY_DIRS
}
${
EZTrace_LIBRARIES
}
"
)
CMAKE_DEPENDENT_OPTION
(
SCALFMM_TRACE_M2L
"Set to ON to trace M2L operator"
ON
"SCALFMM_USE_EZTRACE"
OFF
)
else
(
PKG_CONFIG_FOUND
)
MESSAGE
(
WARNING
"PKG-CONFIG not found- EZTRACE Is set to NONE"
)
set
(
SCALFMM_USE_EZTRACE OFF
)
...
...
Src/ScalFmmConfig.h.cmake
View file @
6fbff0e0
...
...
@@ -85,6 +85,7 @@
///////////////////////////////////////////////////////
#cmakedefine SCALFMM_USE_EZTRACE
#cmakedefine SCALFMM_TRACE_M2L
///////////////////////////////////////////////////////
...
...
Utils/scripts/checkTaskAlgo.slurm
View file @
6fbff0e0
...
...
@@ -8,10 +8,11 @@
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=24
#
w
#
# Task algorithm Improvement
#
METH
=
'
none
'
METH
=
'
final
'
data_dir
=
/projets/scalfmm/data/openmpImprovements
;
project_dir
=
$HOME
/Dev/src/ScalFMM/scalfmm
;
...
...
@@ -27,23 +28,29 @@ OPTION="-show-info -show-compile"
DATE
=
`
date
+%y-%m-%d-%H%M
`
echo
$DATE
#
cd
$project_dir
/BuildIntel2016
#
# INTEL
#
# module add compiler/gcc/5.1.0 compiler/intel/64/2016_beta
# cd $project_dir/BuildIntel2016
module add compiler/gcc/5.1.0 compiler/intel/64/2016_beta
cd
$project_dir
/BuildIntel2016
COMP
=
INTEL
export
KMP_AFFINITY
=
scatter
#
# GCC
#
module add compiler/gcc/5.1.0 intel/mkl/64/11.2/2015.3.187
cd
$project_dir
/BuildGCC51
#module add compiler/gcc/5.1.0 intel/mkl/64/11.2/2015.3.187
#cd $project_dir/BuildGCC51
#COMP=GCC
#
# For eztrace
#
module add mpi/openmpi/gcc/1.8.4 trace/eztrace/1.0
module li
#
# Compilation
#
make ChebyshevInterpolationCmpAlgo
#
#
PER_SIZE
=
`
cat
/proc/cpuinfo |grep processor |wc
-l
`
PER_SIZE
=
"4 8 12 16 20 24"
...
...
@@ -51,15 +58,14 @@ HOST=`hostname`
NBTEST
=
3
# 0..NBTEST
DISTRIB
=(
unitcube unitsphere prolate plummer
)
DEPTH
=(
6 7 9 8
)
#
ALGO=(basic balanced task sectiontask)
ALGO
=(
task
)
ALGO
=(
basic balanced task
tasknew
sectiontask
sectiontasknew
)
#
ALGO=(
task
)
#
pwd
export
OMP_PROC_BIND
=
true
export
KMP_AFFINITY
=
scatter
#export OMP_PROC_BIND=true
NUM
=
`
git rev-list HEAD
--count
`
echo
$DISTRIB
REP
=
${
DATE
}
-
${
METH
}
REP
=
${
DATE
}
-
${
COMP
}
-
${
METH
}
mkdir
${
REP
}
for
dist
in
`
seq
0
$NBTEST
`
;
do
...
...
@@ -70,20 +76,21 @@ do
touch
$FILEGNU
#
# Loop on algorithm
for
a
in
`
seq
0
3
`
;
for
a
in
`
seq
0
5
`
;
do
echo
"# Core GlabalTIME P2PTIME M2LTIME MALLOC FREE MEMUse ENERGY PotentialError ForceError"
>
$FILEPERF
-
${
DISTRIB
[
$dist
]
}
-
${
ALGO
[
$a
]
}
.out
# One computation
for
l
in
$PER_SIZE
;
do
OUTPUT
=
${
FILEPERF
}
-
${
DISTRIB
[
$dist
]
}
-
${
ALGO
[
$a
]
}
-
${
l
}
.out
OUTPUT
=
${
REP
}
/
${
DISTRIB
[
$dist
]
}
/
${
FILEPERF
}
-
${
DISTRIB
[
$dist
]
}
-
${
ALGO
[
$a
]
}
-
${
l
}
.out
echo
"ScalFMM git version: "
$NUM
>
$OUTPUT
echo
"Running on "
${
l
}
" threads with algo "
${
ALGO
[
$a
]
}
echo
$EXEC
${
OPTION
}
-f
$FILE
-depth
${
DEPTH
[
$dist
]
}
-subdepth
4
-t
$l
-cmp
-algo
${
ALGO
[
$a
]
}
>>
$OUTPUT
$EXEC
${
OPTION
}
-f
$FILE
-depth
${
DEPTH
[
$dist
]
}
-subdepth
4
-t
$l
-cmp
-algo
${
ALGO
[
$a
]
}
>>
$OUTPUT
#
eztrace_stats /tmp/coulaud_eztrace_log_rank_1
>
TRACE
TIME
=
`
grep
"@Algorithm"
$OUTPUT
|
awk
'{print $4}'
`
TIMEP2P
=
`
grep
"P2P"
$OUTPUT
|
grep
"second"
|
awk
'{print $4}'
`
TIMEP2P
=
`
grep
"P2P
and L2P
"
$OUTPUT
|
grep
"second"
|
awk
'{print $4}'
`
TIMEM2L
=
`
grep
"M2L"
$OUTPUT
|
grep
"second"
|
awk
'{print $2}'
`
Energy
=
`
grep
"Energy"
$OUTPUT
|
awk
'{print $3}'
`
P1
=
`
grep
" Potential "
$OUTPUT
|
awk
'{print $7}'
`
...
...
@@ -93,16 +100,15 @@ echo "# Core GlabalTIME P2PTIME M2LTIME MALLOC FREE MEMUse ENERGY PotentialE
MEM
=
`
grep
Total TRACE |
grep
malloc |
awk
'{print $15}'
`
echo
" "
$l
" "
$TIME
" "
$TIMEP2P
" "
$TIMEM2L
" "
$MALLOC
" "
$FREE
" "
$MEM
" "
$Energy
" "
$P1
" "
$P2
echo
" "
$l
" "
$TIME
" "
$TIMEP2P
" "
$TIMEM2L
" "
$MALLOC
" "
$FREE
" "
$MEM
" "
$Energy
" "
$P1
" "
$P2
>>
$FILEPERF
-
${
DISTRIB
[
$dist
]
}
-
${
ALGO
[
$a
]
}
.out
mv
$OUTPUT
${
REP
}
/
${
DISTRIB
[
$dist
]
}
mv
/tmp/coulaud_eztrace_log_rank_1
${
REP
}
/
${
DISTRIB
[
$dist
]
}
/trace-
${
DISTRIB
[
$dist
]
}
-
${
ALGO
[
$a
]
}
-
${
l
}
rm
TRACE
done
echo
${
DISTRIB
[
$dist
]
}
/
$FILEPERF
-
${
DISTRIB
[
$dist
]
}
-
${
ALGO
[
$a
]
}
.out
>>
$FILEGNU
mv
$FILEPERF
-
${
DISTRIB
[
$dist
]
}
-
${
ALGO
[
$a
]
}
.out
${
REP
}
/
${
DISTRIB
[
$dist
]
}
mv
$FILEPERF
-
${
DISTRIB
[
$dist
]
}
-
${
ALGO
[
$a
]
}
.out
${
REP
}
/
${
DISTRIB
[
$dist
]
}
echo
"----------------------------------------------------------"
done
echo
"---------------------------- END ALGO ---------------------------------------"
echo
"---------------------------- END ALGO
$a
---------------------------------------"
mv
$FILEGNU
${
REP
}
done
echo
" ---------------------- FINISH -------------------------------"
Utils/scripts/cmpAlgoMemoryPlot.sh
100644 → 100755
View file @
6fbff0e0
File mode changed from 100644 to 100755
Utils/scripts/cmpOpenMPAlgo.slurm
View file @
6fbff0e0
...
...
@@ -26,9 +26,14 @@ echo $DATE
#
cd
$project_dir
/BuildIntel2016
#
# INTEL
# INTEL
2015
#
module add compiler/gcc/5.1.0 compiler/intel/64/2016_beta
# module add compiler/gcc/5.1.0 compiler/intel/64/2015.3.187
# cd $project_dir/BuildIntel2015
#
# INTEL 2016
#
module add compiler/gcc/5.1.0 compiler/intel/64/2016_beta
cd
$project_dir
/BuildIntel2016
#
# GCC
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment