abiswas-odu / Disco

Multi-threaded Distributed Memory Overlap-Layout-Consensus (OLC) Metagenome Assembler
GNU General Public License v3.0
24 stars 1 forks source link

buildG-MPIRMA not found during compilation #2

Closed geboro closed 7 years ago

geboro commented 7 years ago

Working on a workstation running Ubuntu 14.04, with all compilers and mpic++.openmpi.

Compilation of distributed version fails [from cloned git at https://github.com/abiswas-odu/Disco.git ] with error

cp src/BuildGraph/Release/buildG . cp src/SimplifyGraph/Release/fullsimplify . cp src/SimplifyGraph/Release/parsimplify . cp src/BuildGraphMPI/Release/buildG-MPI . cp src/BuildGraphMPIRMA/Release/buildG-MPIRMA . cp: cannot stat ‘src/BuildGraphMPIRMA/Release/buildG-MPIRMA’: No such file or directory make: *** [all] Error 1

abiswas-odu commented 7 years ago

Could you post a little bit more of the make output. It's not clear to me why the buildG-MPIRMA executable is not getting compiled.

Please make sure the openmpi version is 1.8 or above.

ctb commented 7 years ago

I ran into this too - here is the proximal offending output:

Building file: ../src/main.cpp
Invoking: GCC C++ Compiler   
mpic++ -DINCLUDE_READGZ  -g3 -Wall -c -fmessage-length=0 -fopenmp -Wno-sign-comp
are -lz  -std=c++11 -O3 -lgomp -MMD -MP -MF"src/main.d" -MT"src/main.o" -o "src/
main.o" "../src/main.cpp"
In file included from ../src/main.cpp:13:0:
../src/HashTable.h: In member function ‘void HashTable::setLockAll()’:
../src/HashTable.h:97:45: error: ‘MPI_Win_lock_all’ was not declared in this sco
pe
   void setLockAll(){ MPI_Win_lock_all(0, win); }
                                             ^
../src/HashTable.h: In member function ‘void HashTable::unLockAll()’:
../src/HashTable.h:98:43: error: ‘MPI_Win_unlock_all’ was not declared in this s
cope
   void unLockAll(){ MPI_Win_unlock_all(win); }
                                           ^
make[1]: [src/main.o] Error 1 (ignored)
Finished building: ../src/main.cpp

Building target: buildG-MPIRMA
Invoking: GCC C++ Linker
mpic++ -DINCLUDE_READGZ  -fopenmp -o "buildG-MPIRMA"  ./src/Dataset.o ./src/Edge
.o ./src/HashTable.o ./src/OverlapGraph.o ./src/Read.o ./src/main.o    -lz
g++: error: ./src/HashTable.o: No such file or directory
g++: error: ./src/OverlapGraph.o: No such file or directory
g++: error: ./src/main.o: No such file or directory
make[1]: [buildG-MPIRMA] Error 1 (ignored)
Finished building target: buildG-MPIRMA

I see two problems here - one is a misconfiguration on my system (which is presumably my fault) and the other is the ignoring of the Makefile error (which I think maybe should not be ignored, OR you should prepend - to src/BuildGraphMPIRMA/Release/buildG-MPIRMA . if it is not a required build target and the failed cp can be ignored).

abiswas-odu commented 7 years ago

Fixed issue with Makefile ignoring error. The make now will error out when buildG-MPIRMA cannot be built.

I will push change to master by tomorrow.

The compilation issue is due to openmpi version. We need 1.8 or above for RMA code. Build with make mpi-dist-comp to compile MPI version without rma.