Giter Club home page Giter Club logo

flecsi-third-party's Introduction

Third-Party

This project provides an easy way to build and install many third party libraries.

Installation

HDF5 requires CMake >= 3.1.0

% module load cmake

% module load git/2.11.0

% module load gcc/7.3.0

% module load openmpi/1.10.5

% git clone --recursive [email protected]:laristra/flecsi-third-party.git

% cd flecsi-third-party

% mkdir build

% cd build

% ccmake ../

Press "c" to configure. Enable libraries desired. (Press enter to change/confirm a line, press c again, possibly a couple times, and finally g for generate.) IMPORTANT: set the installation path for the libraries in CMAKE_INSTALL_PREFIX.

% make

% make install

Adding to Third-Party

  1. Either add .tar file to files/ or link in the source from the repo
  2. Add <your-library-name>.cmake in cmake/
  • Reference caliper.cmake if .tar file is added to files/
  • Reference cinch-utils.cmake if the repo source is linked in

Using Third-Party Container

  1. docker pull laristra/flesci-third-party:fedora
  2. docker run -it laristra/flesci-third-party:fedora /bin/bash
  3. Download packages that are not already installed, but needed

Building Third-Party with USE_SYSTEM_LIBS=ON/OFF on Travis-CI

  1. .travis.yml: Specify SYSTEM_LIBS=ON or SYSTEM_LIBS=OFF in the matrix of env for Travis to pass into the Docker through --build-arg
  2. docker/Dockerfile: Use ARG SYSTEM_LIBS to assign the value passed in from Travis to SYSTEM_LIBS and include -DUSE_SYSTEM_LIBS=${SYSTEM_LIBS} in cmake command

For more information on Travis-CI and Docker setup, see here

flecsi-third-party's People

Contributors

cferenba avatar charest avatar eddy16112 avatar gshipman avatar jpietarilagraham avatar junghans avatar ktsai7 avatar ollielo avatar rtohid avatar tuxfan avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flecsi-third-party's Issues

Updating Legion

Similar to issue #73 , Flecsi failed to build for me when I changed the runtime to Legion because of an error:

...cannot convert int to __vector(2)...

which I was able to immediately resolve by switching from the pinned commit that's here for Legion to their master branch. I'm building on a Power9 system with gcc 8.2.0 manually installed.

Cheers,
David

README needs an update

The README needs an update on how to use USE_SYSTEM_LIBS=ON/OFF (after you tested it).

We might also want to mention docker:

docker pull laristra/flesci-third-party:fedora
docker run -it laristra/flesci-third-party:fedora /bin/bash

sclone of flecsi-third-party fails on legion

Using git sclone [email protected]:losalamos/flecsi-third-party.git, fails on cloning legion. I can clone legion myself, so not sure where the disconnect lies.

git sclone [email protected]:losalamos/flecsi-third-party.git
... lots of progress...
Cloning into 'legion'...
remote: Counting objects: 36815, done.
remote: Compressing objects: 100% (177/177), done.
remote: Total 36815 (delta 95), reused 0 (delta 0), pack-reused 36638
Receiving objects: 100% (36815/36815), 182.74 MiB | 12.63 MiB/s, done.
Resolving deltas: 100% (28595/28595), done.
Checking connectivity... done.
Submodule path 'legion': checked out '0fd1c61fc7f2a59e1676b51c0c50b85f7dfee2f6'
Submodule 'language/src/rdir' (https://github.com/StanfordLegion/rdir.git) registered for path 'language/src/rdir'
Cloning into 'language/src/rdir'...
fatal: unable to access 'https://github.com/StanfordLegion/rdir.git/': Failed to connect to github.com port 443: Connection refused
fatal: clone of 'https://github.com/StanfordLegion/rdir.git' into submodule path 'language/src/rdir' failed
Failed to recurse into submodule path 'legion'

language/src/rdir mucked about

When I cd into legion; git co -b master origin/master; and try to build again I get this error:

[ 93%] Performing build step for 'legion'
CMake Error at /home/jgraham/github/broken-third-party/build/legion-prefix/src/legion-stamp/legion-build-Debug.cmake:16 (message):
Command failed: 2

'make'

git status shows that language/src/rdir is modified and I cannot make it unmodified, even if I check in the changes and rebase them out.

Updating HPX

I had an error building Flecsi on a P9 because the system's version of Boost was too old and we don't have a full module system set up yet. Since I had to locally install a newer version of Boost, I went with the latest at 1.69.0. Then when building this third party suite, HPX failed because of an outdated API:

error: no matching function for call to 'hpx::exception::exception(boost::system::error_code&)'

I went into flecsi-third-party/hpx/ and changed to the current master branch and was able to successfully build everything. Can you update the pinned version of HPX to the latest?

Cheers,
David

CMake fails when no CMAKE_BUILD_TYPE is provided.

Looks like when you don't specify a CMAKE_BUILD_TYPE, the build fails. It gets most of the way through, but some of the libraries fail (see below). Should we just force a default @junghans ?

[ 98%] Performing build step for 'scotch'
CMake Error at /home/charest/code/flecsi-third-party/build/scotch-prefix/src/scotch-stamp/scotch-build-.cmake:16 (message):
  Command failed: 2

   'make'

  See also

    /home/charest/code/flecsi-third-party/build/scotch-prefix/src/scotch-stamp/scotch-build-*.log

Scotch ZLib Error

Scotch doesn't correctly set the LDFLAGS to include the path to zlib. If zlib has not been installed on the system already, the build fails to find the version that was compiled by the third-party project.

Can't recursive clone third-party: cinch-utils module path?

git sclone not working (below). After it barfs, I can cd into third-party and recursively check out cinch-utils from losalamos/cinch-utils and go on my way. Not finding flecsi/cinch-utils.

Cheers,
Tim

$ git sclone [email protected]:flecsi/third-party.git
#------------------------------------------------------------------------------#
# !!!WARNING WARNING WARNING!!!
# THIS IS NOT A STANDARD GIT FEATURE
# IT IS PROVIDED BY THE CINCH-UTILS PROJECT
# CINCH-UTILS MUST BE INSTALLED TO USE THIS SCRIPT
# !!!WARNING WARNING WARNING!!!
#  
#  Cinch-Utils Script 
#     git-sclone 
#  
#  Intent: 
#     Recursive clone of a git project that contains submodules. 
#  
#  Operations: 
#     git clone --recursive 
#
# Set CINCH_SUPPRESS_SCRIPT_WARNINGS to suppress this output, e.g.,
# > export CINCH_SUPPRESS_SCRIPT_WARNINGS=1 (bash)
# > setenv CINCH_SUPPRESS_SCRIPT_WARNINGS 1 (csh)
#------------------------------------------------------------------------------#
Cloning into 'third-party'...
remote: Counting objects: 383, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 383 (delta 12), reused 0 (delta 0), pack-reused 358
Receiving objects: 100% (383/383), 47.96 MiB | 9.05 MiB/s, done.
Resolving deltas: 100% (219/219), done.
Checking connectivity... done.
Submodule 'cereal' ([email protected]:USCiLab/cereal.git) registered for path 'cereal'
>>>> Look here >>>> Submodule 'cinch-utils' ([email protected]:flecsi/cinch-utils.git) registered for path 'cinch-utils'
Submodule 'legion' ([email protected]:StanfordLegion/legion.git) registered for path 'legion'
Cloning into 'cereal'...
remote: Counting objects: 14527, done.
remote: Compressing objects: 100% (113/113), done.
remote: Total 14527 (delta 84), reused 0 (delta 0), pack-reused 14414
Receiving objects: 100% (14527/14527), 12.68 MiB | 6.82 MiB/s, done.
Resolving deltas: 100% (11007/11007), done.
Checking connectivity... done.
Submodule path 'cereal': checked out 'bd839ccb47dfb5462331fede7c5f013ca8dc60cb'
Cloning into 'cinch-utils'...
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:flecsi/cinch-utils.git' into submodule path 'cinch-utils' failed

Fix debug build

libz.so is called libz_debug.so for debug build. Same for libszip.so.

Create separate install target

If the install directory is deleted or modified after an initial build and install, one cannot simply re-install the built libraries since there is no install target. I had to run make clean and then rebuild everything in order to get it installed again. It would be nice to a have a separate install target so that one could simply run make install and the libraries would be installed without rebuilding them unnecessarily.

Detect system libs

Check for system libs (using cinch's find Modules) and only build what we really need.

flecsi-tutorial/00-driver stopped working with legion runtime

After commit bfd2828 the flecsi-tutorial/00-driver won't work with legion on Wolf:
Steps to reproduce:

  1. module load cmake/3.9.0 python/2.7-anaconda-4.1.1 gcc/6.4.0 boost/1.61 mpich/3.2.1
  2. checkout flecsi-third-party commit bfd2828
  3. checkout flecsi, current master branch (or commit laristra/flecsi@ecd3c76)
  4. configure and build flecsi-third-party (complete config: CMakeCache-ftp-wolf.txt):
  cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/tmp/issue03 \
         -DENABLE_HPX=OFF -DENABLE_LEGION=ON -DLEGION_USE_OPENMP=OFF 
  make -j8
  1. configure, make and install flecsi (full config file: CMakeCache-flecsi-wolf.txt)
  cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/tmp/issue03 \
         -DENABLE_HPX=OFF -DFLECSI_RUNTIME_MODEL=legion
  make -j8
  make install
  1. Setup tutorial environment and run the test:
  source $CMAKE_INSTALL_PREFIX/bin/flecsi-tutorial.sh
  cd flecsi/flecsi-tutorial/00-driver
  flecsit compile driver.cc
  ./driver
  • Expected: "Hello world!" output
  • Actual:
*** Caught a fatal signal: SIGSEGV(11) on node 0/1
NOTICE: Before reporting bugs, run with GASNET_BACKTRACE=1 
in the environment to generate a backtrace. 
Segmentation fault (core dumped)

Full error output with the flag GASNET_BACKTRACE=1: error_message.txt

Dockerize Flecsi TPL

Currently Dockerized Travis CI Flecsi PR#79 spends most of its time in compiling TPL which are infrequently changed. This can be improved by:

  1. Move TPL related commands in Flecsi docker files to docker files in Flecsi TPL.
  2. Once Flecsi DockerHub account is create, create official Flecsi TPL docker images and host them on the DockerHub.
  3. Changed docker files in Flecsi to refer to Flecsi TPL images when necessary.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.