astro-informatics / purify

Next-generation radio interferometric imaging.
https://astro-informatics.github.io/purify
GNU General Public License v2.0
17 stars 13 forks source link

Add a .travis.yml file #165

Closed RolandMacDoland closed 6 years ago

RolandMacDoland commented 6 years ago

Fixes #143

dpshelio commented 6 years ago

This is getting somewhere... slowly. For getting mpi working on the linux boxes I had to install from sources newer versions of openmpi and mpich (that's why these builds take ~30 min each). After lots of changing path battles (as you can see in the commits) I've managed to make it work, though openmpi builds complained that 4 nodes were too much.

There other problems to solve in the other builds:

@UCLGuichard, @Luke-Pratley would you be able to work in these? We could simply solve that by saying: Only GCC is supported on linux and Clang on OSx.

RolandMacDoland commented 6 years ago

Hi @dpshelio sure ! I'm happy to do anything that could help in this direction.

dpshelio commented 6 years ago

Damn!! OpenMPI still fails. Now cmake finds it, but even with two processors keep failing... :cry:

RolandMacDoland commented 6 years ago

argh :(

Luke-Pratley commented 6 years ago

@dpshelio This is really odd. I have been using gcc on OSX, with openMPI. Is it an issue of not finding the test files?

RolandMacDoland commented 6 years ago

Hi @dpshelio and @Luke-Pratley , I am working on it now. Just quick remarks, it seems that only MPICH works for Linux. I am going to run a series of scaling tests to confirm that. I checked that on Legion I've been using Intel-MPI. However, there is OpenMPI there. Would it make sense to run the tests on Legion to see what happen ? I also have a VM for emulating Travis. Maybe worth checking what is going on there too.

RolandMacDoland commented 6 years ago

Another point, does Clang allow OpenMP/MPI ? I see in the tests that you haven't set that option, is to worth checking ?

RolandMacDoland commented 6 years ago

Note1: I would suggest somewhere not to make install Sopt if manually build, as it messed with Purify install, or let CMake install and build everything. Note2: On the VM, I had to turn examples to off, to make the full build successful. Although MPI tests fail. The error is reported here:

/usr/bin/x86_64-linux-gnu-ld: CMakeFiles/example_global_epsilon_replicated_grids.dir/padmm_mpi_random_coverage.cc.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
//usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [cpp/example/global_epsilon_replicated_grids] Error 1
make[1]: *** [cpp/example/CMakeFiles/example_global_epsilon_replicated_grids.dir/all] Error 2
make: *** [all] Error 2
RolandMacDoland commented 6 years ago

OK I'm able to reproduce the errors on the VM.

RolandMacDoland commented 6 years ago

Note3: About Clang, could this be related ? https://github.com/UCL/STIR/issues/117 At least, I've got Clang not finding libiomp on my VM. I solved that issue and I've got Linux+Clang+MPICH working.

RolandMacDoland commented 6 years ago

Hi @Luke-Pratley and @dpshelio why is the .travis.yaml full of unresolved conflict markers ?

RolandMacDoland commented 6 years ago

For the record, how to build using Clang, OpenMP with CMAKE:

cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++-5.0 -DCMAKE_C_COMPILER=/usr/bin/clang-5.0 -DOpenMP_CXX_FLAGS="-fopenmp=libiomp5" ..