[mpich2-dev] configure MPICH2 without TLS?

Darius Buntinas buntinas at mcs.anl.gov
Thu Aug 16 20:46:12 CDT 2012


Perhaps we should add a configure option for this, but for now try removing 
  AX_TLS
in configure.ac

-d


On Aug 16, 2012, at 7:34 PM, Jeff Hammond wrote:

> Is it possible to configure MPICH2 to not use thread local variables?
> These are causing LLVM to crash when compiling MPICH2 on BGQ.
> 
> Thanks,
> 
> Jeff
> 
> On Thu, Aug 16, 2012 at 5:33 PM, Hal Finkel <hfinkel at anl.gov> wrote:
>> Jeff,
>> 
>> Can you configure MPICH not to use thread local variables. Pthreads instead
>> of __thread.
>> 
>> This is kind of a known PPC issue.
>> 
>> -Hal
>> 
>> Sent from my Verizon Wireless Droid
>> 
>> 
>> -----Original message-----
>> 
>> From: Jeff Hammond <jhammond at alcf.anl.gov>
>> To: Hal Finkel <hfinkel at anl.gov>
>> Sent: Fri, Aug 17, 2012 00:16:00 GMT+00:00
>> Subject: LLVM ICE on MPICH2
>> 
>> I put the offending source in ~jhammond/LLVM. The whole
>> ~jhammond/MPICH tree should be world-readable so you should be able to
>> get all the headers.
>> 
>> Thanks,
>> 
>> Jeff
>> 
>> make[3]: Entering directory
>> `/gpfs/vesta_home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/mpi/coll'
>> CC /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpi/coll/reduce.c
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpi/coll/reduce.c:302:31:
>> warning: equality comparison with extraneous parentheses
>> [-Wparentheses-equality]
>> if ((op_ptr->language == MPID_LANG_C))
>> ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpi/coll/reduce.c:302:31:
>> note: remove extraneous parentheses around the comparison to silence
>> this warning
>> if ((op_ptr->language == MPID_LANG_C))
>> ~ ^ ~
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpi/coll/reduce.c:302:31:
>> note: use '=' to turn this equality comparison into an assignment
>> if ((op_ptr->language == MPID_LANG_C))
>> ^~
>> =
>> only local-exec TLS mode supported
>> UNREACHABLE executed at
>> /home/hfinkel/src/llvm-trunk-dev-q/lib/Target/PowerPC/PPCISelLowering.cpp:1444!
>> 0 clang 0x0000000011dd9e1c
>> 1 clang 0x0000000011ddabb4
>> 2 0x00000fff8df00418 __kernel_sigtramp_rt64 + 0
>> 3 libc.so.6 0x000000801b396ed8 abort + 18446744073708064136
>> 4 clang 0x0000000011dbe574 llvm::llvm_unreachable_internal(char
>> const*, char const*, unsigned int) + 18446744073698686052
>> 5 clang 0x0000000011424080
>> llvm::PPCTargetLowering::LowerGlobalTLSAddress(llvm::SDValue,
>> llvm::SelectionDAG&) const + 18446744073688834928
>> 6 clang 0x0000000011448d34
>> llvm::PPCTargetLowering::LowerOperation(llvm::SDValue,
>> llvm::SelectionDAG&) const + 18446744073688984340
>> 7 clang 0x00000000116725b0
>> 8 clang 0x00000000116743b8 llvm::SelectionDAG::Legalize() +
>> 18446744073691227224
>> 9 clang 0x0000000011631378
>> llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 18446744073690954584
>> 10 clang 0x0000000011633dc8
>> llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iteratorconst>,
>> llvm::ilist_iterator, bool&) +
>> 
>> 18446744073690965384
>> 11 clang 0x000000001163480c
>> llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) +
>> 18446744073690967996
>> 12 clang 0x0000000011635d60
>> llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) +
>> 18446744073690973440
>> 13 clang 0x000000001141c134
>> 14 clang 0x00000000117aebac
>> llvm::MachineFunctionPass::runOnFunction(llvm::Function&) +
>> 18446744073692485980
>> 15 clang 0x0000000011d62550
>> llvm::FPPassManager::runOnFunction(llvm::Function&) +
>> 18446744073698322912
>> 16 clang 0x0000000011d6269c
>> llvm::FPPassManager::runOnModule(llvm::Module&) + 18446744073698323228
>> 17 clang 0x0000000011d63470
>> llvm::MPPassManager::runOnModule(llvm::Module&) + 18446744073698326624
>> 18 clang 0x0000000011d63944
>> llvm::PassManagerImpl::run(llvm::Module&) + 18446744073698327828
>> 19 clang 0x0000000011d63a04 llvm::PassManager::run(llvm::Module&)
>> + 18446744073698328004
>> 20 clang 0x0000000010406dc4
>> clang::EmitBackendOutput(clang::DiagnosticsEngine&,
>> clang::CodeGenOptions const&, clang::TargetOptions const&,
>> clang::LangOptions const&, llvm::Module*, clang::BackendAction,
>> llvm::raw_ostream*) + 18446744073672339572
>> 21 clang 0x0000000010403c74
>> 22 clang 0x0000000010583700 clang::ParseAST(clang::Sema&, bool,
>> bool) + 18446744073673863872
>> 23 clang 0x000000001027f3e0
>> clang::ASTFrontendAction::ExecuteAction() + 18446744073670778416
>> 24 clang 0x0000000010401888 clang::CodeGenAction::ExecuteAction()
>> + 18446744073672318168
>> 25 clang 0x000000001027f884 clang::FrontendAction::Execute() +
>> 18446744073670779476
>> 26 clang 0x000000001025ce1c
>> clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) +
>> 18446744073670639036
>> 27 clang 0x000000001023f404
>> clang::ExecuteCompilerInvocation(clang::CompilerInstance*) +
>> 18446744073670523140
>> 28 clang 0x0000000010233df8 cc1_main(char const**, char const**,
>> char const*, void*) + 18446744073670476968
>> 29 clang 0x000000001023da80 main + 18446744073670516624
>> 30 libc.so.6 0x000000801b37bcd8
>> 31 libc.so.6 0x000000801b37bed0 __libc_start_main + 18446744073707958784
>> Stack dump:
>> 0. Program arguments:
>> /gpfs/vesta_home/projects/llvm/r161120-20120801/bin/clang -cc1 -triple
>> powerpc64-bgq-linux -S -disable-free -main-file-name reduce.c
>> -static-define -mrelocation-model static -mdisable-fp-elim
>> -fmath-errno -ffp-contract=fast -mconstructor-aliases -target-cpu a2q
>> -target-linker-version 2.20.51.0.2 -momit-leaf-frame-pointer -g
>> -coverage-file /tmp/reduce-1Os2OP.s -resource-dir
>> /gpfs/vesta_home/projects/llvm/r161120-20120801/bin/../lib/clang/3.2
>> -D HAVE_CONFIG_H -D __BGQ__ -I . -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpi/coll -I ../../include
>> -I /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/include -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpi/datatype -I
>> /bgsys/drivers/ppcfloor/comm/sys/include -I /bgsys/drivers/ppcfloor -I
>> /bgsys/drivers/ppcfloor/spi/include -I
>> /bgsys/drivers/ppcfloor/spi/include/kernel/cnk -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/mpl/include -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpl/include -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/openpa/src -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/openpa/src -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/mpid/pamid/include
>> -I /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpid/pamid/include -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/mpid/common/datatype
>> -I /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpid/common/datatype -I
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/mpid/common/locks
>> -I /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpid/common/locks -I
>> /bgsys/drivers/ppcfloor/comm/sys/include -I /bgsys/drivers/ppcfloor -I
>> /bgsys/drivers/ppcfloor/spi/include -I
>> /bgsys/drivers/ppcfloor/spi/include/kernel/cnk -fmodule-cache-path
>> /var/tmp/clang-module-cache -internal-isystem /usr/local/include
>> -internal-isystem
>> /gpfs/vesta_home/projects/llvm/r161120-20120801/bin/../lib/clang/3.2/include
>> -internal-externc-isystem /include -internal-externc-isystem
>> /usr/include -O3 -fno-dwarf-directory-asm -fdebug-compilation-dir
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/mpi/coll
>> -ferror-limit 19 -fmessage-length 223 -mstackrealign -fno-signed-char
>> -fgnu89-inline -fobjc-runtime=gcc -fdiagnostics-show-option
>> -fcolor-diagnostics -isystem
>> /bgsys/drivers/ppcfloor/gnu-linux/powerpc64-bgq-linux/sys-include
>> -mllvm -unroll-allow-partial -mllvm -unroll-runtime -mllvm -vectorize
>> -mllvm -bb-vectorize-vector-bits=256 -mllvm
>> -bb-vectorize-req-chain-depth=3 -mllvm -bb-vectorize-aligned-only
>> -mllvm -bb-vectorize-no-ints -mllvm -bb-vectorize-no-pointers -mllvm
>> -bb-vectorize-no-gep -o /tmp/reduce-1Os2OP.s -x c
>> /home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpi/coll/reduce.c
>> 1. parser at end of file
>> 
>> 2. Code generation
>> 3. Running pass 'Function Pass Manager' on module
>> '/home/jhammond/MPICH/mpich2-bgq-V1R1M1/src/mpi/coll/reduce.c'.
>> 4. Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on
>> function '@MPIR_Reduce_intra'
>> clang: error: unable to execute command: Aborted (core dumped)
>> clang: error: clang frontend command failed due to signal (use -v to
>> see invocation)
>> clang version 3.2 (login1.mcs.anl.gov:src/llvm-trunk/tools/clang
>> ba48291cfc06bd79f726b44a21eedd340f0db9cc)
>> (login1.mcs.anl.gov:src/llvm-trunk
>> b85b25962c78638a27185d0eb4c1a514b25d75a4)
>> Target: powerpc64-bgq-linux
>> Thread model: posix
>> clang: note: diagnostic msg: PLEASE submit a bug report to
>> http://llvm.org/bugs/ and include the crash backtrace, preprocessed
>> source, and associated run script.
>> clang: note: diagnostic msg:
>> ********************
>> 
>> PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
>> Preprocessed source(s) and associated run script(s) are located at:
>> clang: note: diagnostic msg: /tmp/reduce-JBxGnk.c
>> clang: note: diagnostic msg: /tmp/reduce-JBxGnk.sh
>> clang: note: diagnostic msg:
>> 
>> ********************
>> make[3]: *** [reduce.o] Error 254
>> make[3]: Leaving directory
>> `/gpfs/vesta_home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/mpi/coll'
>> make[2]: *** [all-redirect] Error 2
>> make[2]: Leaving directory
>> `/gpfs/vesta_home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src/mpi'
>> make[1]: *** [all-redirect] Error 2
>> make[1]: Leaving directory
>> `/gpfs/vesta_home/jhammond/MPICH/mpich2-bgq-V1R1M1/build-clang/src'
>> make: *** [all-redirect] Error 2
>> 
>> 
>> --
>> Jeff Hammond
>> Argonne Leadership Computing Facility
>> University of Chicago Computation Institute
>> jhammond at alcf.anl.gov / (630) 252-5381
>> http://www.linkedin.com/in/jeffhammond
>> https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond
> 
> 
> 
> -- 
> Jeff Hammond
> Argonne Leadership Computing Facility
> University of Chicago Computation Institute
> jhammond at alcf.anl.gov / (630) 252-5381
> http://www.linkedin.com/in/jeffhammond
> https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond



More information about the mpich2-dev mailing list