-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compilation on cray machines [SOLVED] #57
Comments
Hello Thorsten,
|
That said, Shoji seems to be able to compile on an XC40 just fine (except the missing typecast I committed last night). Please try develop again on that.
and would prefer not to by default hide since there really is complexity and pretending it But others disagree with me so feedback from many people welcome to get a feel |
p.s. I committed a patch to Travis for the typecast in Stencil.h Important : are any of the NERSC Cray systems available for remote login and compile just now? It would be good if we could try it ourselves, especially since Travis provides neither |
Hi Thorsten, We cannot really help you if we don't have the specifics of the build. Please:
|
Hello, using mpicxx or something related is not a good option as that would basically disable priority access to Aries interconnect. To my knowledge, there is no good way of circumventing the cray wrappers and static linking when one wants a good performance at scale on a XC-40. |
Here are my build details: commit: build script:
configure output:
environment:
|
That is the makefile output (relevant part)
it tries using g++/gcc, not CC/cc
|
|
I have added the config log. |
We need the config log after your configure, the one posted says that the run command was just |
Oh, maybe my build script is buggy
|
Here it is (updated, now memkind loaded) |
This looks still a problem in the environment configure correctly recognized icpc but some libs are missing, maybe not in the libraries path. |
I did that before but now I switched to intel 2016 and it seems to work. Previously I used a 2017 beta. |
Ok, we can close the issue, seems to work. Before we do that: the bin folder only contains the Benchmarks, is that right? |
one last thing: I can the comms benchmark test with: srun -n 64 -c 68 --cpu_bind=cores numactl -p 1 ./Benchmark_comms --threads 64 --mpi 2.2.4.4 --grid 128.128.128.128 and it ran the test but when trying to compute the summary:
are the parameters chosen wrong?
|
Can I ask you a couple of things? Could you open a new thread for the last request? |
What worked was to execute bootstrap.sh, then having the following modules loaded: `[tkurth@cori08 ~]$ module list
Then running the following configure
The -lmemkind linking can be required because in intel 2016 and 2017, MKL makes use of hbw_alloc calls but does not link against libmemkind by default. So if you don't link and run the "wrong routine", then you will see segfaults. |
g++ is not yet known good on AVX512 intrinsics for us. Can you try current develop with ICPC?
The University of Edinburgh is a charitable body, registered in |
I have several issues compiling GRID on a cray machine.
the automatically generated Makefile in lib does not get the correct include paths:
make[2]: Entering directory '/global/project/projectdirs/mpccc/tkurth/NESAP/GRID/build/lib'
CXX Init.o
CXX PerfCount.o
CXX algorithms/approx/MultiShiftFunction.o
CXX Log.o
CXX qcd/action/fermion/CayleyFermion5D.o
CXX qcd/action/fermion/ContinuedFractionFermion5D.o
CXX qcd/action/fermion/PartialFractionFermion5D.o
CXX qcd/action/fermion/WilsonFermion.o
CXX qcd/action/fermion/WilsonKernels.o
CXX qcd/action/fermion/WilsonFermion5D.o
CXX qcd/action/fermion/WilsonKernelsAsm.o
CXX qcd/action/fermion/WilsonKernelsHand.o
In file included from ../../src/lib/qcd/action/fermion/CayleyFermion5D.cc:32:0:
../../src/lib/Grid.h:62:46: fatal error: Grid/serialisation/Serialisation.h: No such file or directory
#include <Grid/serialisation/Serialisation.h>
That I could fix by manually adding -I's in the generated makefile
the lib compilation uses gcc/g++ and not the compiler I selected. I want to use the cray wrappers cc/CC to enable cray mpi, but I got:
make[1]: Entering directory '/global/project/projectdirs/mpccc/tkurth/NESAP/GRID/build/lib'
CXX Init.o
In file included from ../../src/include/Grid/Communicator.h:31:0,
from ../../src/lib/Grid.h:72,
from ../../src/lib/Init.cc:44:
../../src/include/Grid/communicator/Communicator_base.h:35:17: fatal error: mpi.h: No such file or directory
#include <mpi.h>
That is expected, as gcc does not know about mpi. Please fix this so that CC/CXX is actually CC/CXX specified by the user
after fixing that, the next error is:
../../src/include/Grid/Stencil.h(276): error: a value of type "Grid::iScalar<Grid::iVector<Grid::iVector<Grid::vComplexF, 3>, 2>> *" cannot be used to initialize an entity of type "uint64_t={unsigned long}"
uint64_t cbase = & comm_buf[0];
to me this looks like a some implicit casting the intel compiler does not like. I think an explicit typecast would be healthy here.
after fixing these things, I finally get:
make[2]: Entering directory '/global/project/projectdirs/mpccc/tkurth/NESAP/GRID/build/lib'
make[2]: *** No rule to make target 'simd/Grid_empty.h', needed by 'all-am'. Stop.
That I don't know how to solve. Please advise.
Best
Thorsten
The text was updated successfully, but these errors were encountered: