charmplusplus / charm

The Charm++ parallel programming system. Visit https://charmplusplus.org/ for more information.
Apache License 2.0
203 stars 49 forks source link

lrts smp/multicore megacon build fails with undefined reference to `TraceTimerCommon' #1574

Closed jcphill closed 7 years ago

jcphill commented 7 years ago

Original issue: https://charm.cs.illinois.edu/redmine/issues/1574


One example, on Bridges:

./build charm++ multicore-linux64 iccstatic --no-build-shared --enable-tracing --enable-tracing-commthread -optimize
cd multicore-linux64-iccstatic/tests/converse/megacon
make pgm
../../../bin/charmc  -o pgm blkinhand.o megacon.o ringsimple.o ring.o fibobj.o fibthr.o broadc.o priotest.o deadlock.o vars.o nodenum.o specmsg.o bigmsg.o vecsend.o posixth.o future.o multicast.o multisend.o handler.o reduction.o -language converse++
icpc: warning #10237: -lcilkrts linked in dynamically, static library not available
../../../bin/../lib/libconv-cplus-y.a(machine.o): In function `AssembleDatagram':
machine.c:(.text+0x2084): undefined reference to `TraceTimerCommon'
../../../bin/../lib/libconv-cplus-y.a(machine.o): In function `AssembleReceivedDatagrams':
machine.c:(.text+0x16cd0): undefined reference to `TraceTimerCommon'
../../../bin/../lib/libconv-cplus-y.a(machine.o): In function `IntegrateMessageDatagram':
machine.c:(.text+0x19ebc): undefined reference to `TraceTimerCommon'
Fatal Error by charmc in directory /pylon5/mtsg4cp/jphillip/charm-6.8.0-proj-build-2017-May-25-21817-multicore-linux64-iccstatic/charm-6.8.0-beta2/multicore-linux64-iccstatic/tests/converse/megacon
   Command icpc -static-intel -o pgm -L../../../bin/../lib -I../../../bin/../include blkinhand.o megacon.o ringsimple.o ring.o fibobj.o fibthr.o broadc.o priotest.o deadlock.o vars.o nodenum.o specmsg.o bigmsg.o vecsend.o posixth.o future.o multicast.o multisend.o handler.o reduction.o moduleinit8409.o -lmemory-default -lthreads-default -lconv-cplus-y -lconv-core -ltmgr -lconv-util -lconv-partition -ltrace-converse -lmemory-default -lthreads-default -lldb-rand -lconv-ldb -lpthread -lckqt -ldl -lmoduleNDMeshStreamer -lmodulecompletion -lm returned error code 1

Note that megatest (Charm++) works, as does NAMD.

The following NAMD builds have this issue, which is exactly the lrts layers with smp/multicore: Beagle-smp.log BlueGeneQ-lrts.log Bridges-MPI-smp.log Bridges-multicore.log BW-smp.log Cori-KNL-smp.log Cori-smp.log Edison-smp.log Jetson.log JYC-smp.log Linux-KNL-multicore.log Linux-x86_64-lrts-smp.log Linux-x86_64-multicore-gcc.log Linux-x86_64-multicore.log Linux-x86_64-verbs-smp.log MacOSX-x86_64.log Stampede2.log Stampede2-multicore.log Stampede-verbs-smp.log Taub-verbs-smp.log Theta.log Titan-smp.log Win64.log Win64-MPI-smp.log

PhilMiller commented 5 years ago

Original date: 2017-05-26 17:17:51


OK, reproduced with ./build charm++ multicore-darwin-x86_64 --no-build-shared --enable-tracing --enable-tracing-commthread -optimize - no need for the Intel compilers to hit this. Looking at the relevant code, and rebuilding accordingly, it's specifically --enable-tracing-commthread

The same issue arises with

 ./build charm++ netlrts-darwin-x86_64-smp --enable-tracing-commthread -j5 -g
 cd netlrts-darwin-x86_64-smp/tests/converse/megacon
 make
PhilMiller commented 5 years ago

Original date: 2017-05-26 17:27:48


https://charm.cs.illinois.edu/gerrit/2558 https://github.com/UIUC-PPL/charm/commit/ef205bc39a5469b853c82e31cf5ed3513d13aaaa