Changes between Version 18 and Version 19 of WikiStart

Show
Ignore:
Timestamp:
04/25/13 17:29:54 (5 years ago)
Author:
hfinkel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v18 v19  
    11= Welcome to using LLVM/clang on the BG/Q  = 
    22 
    3 == ANL Early Access == 
     3== ANL Vesta, Mira and Cetus == 
    44 
    5 If you have access to ANL's ''early access'' development systems, please also see (for usage details): 
    6 [https://wiki.alcf.anl.gov/bgq-earlyaccess/index.php/LLVM LLVM on the BG/Q Early-Access Wiki] 
     5If you have access to ANL's Vesta, Mira and Cetus systems, this BG/Q-enhanced LLVM/Clang is installed for you. You can use the softenv keys: 
     6{{{ 
     7    +mpiwrapper-bgclang            bgclang wrappers and toolchain 
     8    +mpiwrapper-bgclang.legacy     bgclang.legacy wrappers and toolchain 
     9}}} 
     10to have the corresponding MPI wrappers added to your path. 
    711 
    8 For the benefit of those without access, here is a copy of our [attachment:bgclang] wrapper script (as of 2012-06-02). For use on other systems, you'll need to change some of the paths, but this will let you see what optimization settings are used by default. You should symlink this to bgclang++ and bgclang++11 to create the C++ wrappers. 
     12For the benefit of those without access, a copy of the bgclang wrapper script is available in the latest archive. For use on other systems, you'll need to change some of the paths, but this will let you see what optimization settings are used by default. You should symlink this to bgclang++ and bgclang++11 to create the C++ wrappers. 
    913 
    10 Similarly, [attachment:llvm_bgq_mpi-20120604.tar.gz] contains the MPI wrapper scripts (modified from the corresponding gcc wrapper scripts), and patched MPI headers. bgclang can use the system MPI headers as provided, but the patched versions include type safety attributes used to type check MPI calls (thus taking advantage of a great new feature being developed by Dmitri Gribenko). 
     14Similarly, the archive contains the MPI wrapper scripts (modified from the corresponding gcc wrapper scripts). 
    1115 
    1216== Repository Information == 
     
    2024 
    2125== Patches == 
     26 
     27=== !r180241-20130423 === 
     28 
     29 * LLVM, Clang, libc++ (patches, wrapper and build scripts): [attachment:r180241-20130423-files.tar.gz] 
    2230 
    2331=== !r157929-20120603 === 
     
    4149== Building == 
    4250 
    43 Follow the normal directions for checking out llvm and clang from the llvm.org repositories. Run configure. I recommend building from a directory different from the source directory. I use the following make command: 
     51Follow the normal directions for checking out llvm and clang from the llvm.org repositories (using the revision number specified in the archive name). Then apply the provided patches. Run configure (I recommend building from a directory different from the source directory). See the build scripts for how to compile everything. 
    4452 
    45 {{{ 
    46  make -j 8 ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2 EXTRA_OPTIONS=-mminimal-toc prefix=/home/projects/llvm install 
    47  cp -Rf ${LLVM_SRC_DIR}/tools/clang/tools/scan-{build,view} /home/projects/llvm/ 
    48 }}} 
    49  
    50 Where the command is run from the top-level build directory and LLVM_SRC_DIR is set to the path to the top-level source directory. 
     53For a better C++11 environment, you'll want to use libc++ as the C++ standard library implementation. The attached build script patches and builds libc++ so that it can correctly interoperate (be linked with) the libstdc++ which the MPI/PAMI implementation requires. The bgclang++11 (and corresponding MPI wrappers) setup this environment.