help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Octave and MPITB compile


From: Javier Fernández
Subject: Re: Octave and MPITB compile
Date: Tue, 14 Oct 2008 10:03:59 +0200
User-agent: Thunderbird 2.0.0.6 (Windows/20070728)

address@hidden wrote:
   8. Octave and MPITB compile (Jack Franklin)
   9. Octave and MPITB compile (Jack Franklin)
------------------------------------------------------------------------
Subject: Octave and MPITB compile
From: "Jack Franklin" <address@hidden>

"study". is included in your e-mail address :-) That's nice


[...]
-bash-3.00$ make
input in flex scanner failed
input in flex scanner failed
touch Makefile
input in flex scanner failed
input in flex scanner failed

I don't know the flex errors. Have no clue.

touch IMPI_CLIENT_COLOR.cc
g++ -c -fPIC -mieee-fp -g -O2 -Wall -I/HOME/new_mpitb_octave/octave/include/octave-2.9.12 -I/HOME/new_mpitb_octave/octave/include/octave-2.9.12/octave -I/HOME/new_mpitb_octave/octave/include IMPI_CLIENT_COLOR.cc -o IMPI_CLIENT_COLOR.o

I can't see the -I<mpi include dir> flag. The Makefile.inc should have generated it (MPIINCFLAGS below) with the following lines (extracted from the file):

MPICC  = mpiCC
[...]
#MPIINCDIR  :=  $(shell $(MPINFO) -path incdir -parsable | cut -d: -f3)
#MPIINCFLAGS =-I$(MPIINCDIR)
[...]
 MPIINCFLAGS:=  $(shell $(MPICC) --showme:compile)
[...]
INCFLAGS = $(OCTINCFLAGS) $(MPIINCFLAGS)


INCFLAGS is later used in the .cc.o rule in Makefile (extracted below):

$(MPIOBJS): %.o: %.cc
        $(CXX) -c $(CXXFLAGS) $(INCFLAGS) $< -o $@

Your "make" should support $(shell) commands. Perhaps the flex error is related to that.

g++ -shared -Wl,-Bsymbolic IMPI_CLIENT_COLOR.o -o IMPI_CLIENT_COLOR.oct -L/HOME/new_mpitb_octave/octave/lib/octave-2.9.12 -L -loctinterp -loctave -lcruft -llapack -lblas -lreadline -lncurses -ldl -lz -lm -L/usr/lib/gcc/i386-redhat-linux/3.4.6 -L/usr/lib/gcc/i386-redhat-linux/3.4.6/../../.. -lz -lfrtbegin -lg2c -lm -lmpi

I can see an empty -L<mpi lib dir> flag. I guess that's the value for MPILFLAGS computed by Makefile.inc:

 MPINFO     =          ompi_info
 MPILIBDIR :=   $(shell $(MPINFO) -path libdir -parsable | cut -d: -f3)
 MPILFLAGS  = -L$(MPILIBDIR)

An empty -L flag could be a perfect reason for your next error:

/usr/bin/ld: cannot find -lmpi
collect2: ld returned 1 exit status
make: *** [IMPI_CLIENT_COLOR.oct] Error 1

There is no mpi library in your -L path (or system ld path). Of course there is not. Fix your system so the $(shell) commands work again. Ayways, I think you said you are working on an IBM Blue/Gene. I find it difficult to believe you have been abandoned in front of such a beast with no sysadmin who can fix these things for you. Not only fix the $(shell) issue, but also _study_ Nils' port of MPITB to MPICH-BG/L and install it alltogether.

In other words, there is no use in fixing the $(shell) issue, only to later learn you should also have compiled with ESSL library and OpenMP stubs and MASS library (no clue about these either, I'm only copy-pasting from Nils' instructions).
http://www.pdc.kth.se/systems_support/computers/bluegene/bgloctave/mpitb-octave-on-bgl

-javier


reply via email to

[Prev in Thread] Current Thread [Next in Thread]