[mpich2-dev] configure MPICH2 without TLS?

Jeff Hammond jhammond at alcf.anl.gov
Thu Aug 16 19:34:49 CDT 2012


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