Using SCALAPACK in IRIX 6/5. 64 bit compiler

Open discussion regarding features, bugs, issues, vendors, etc.

Using SCALAPACK in IRIX 6/5. 64 bit compiler

Postby sfarris » Tue Feb 15, 2005 3:54 pm

In LINUX I was able to build the scalapack library with the system libraries for blas and lapack, and prebuilt libraries for blacs. I used the g2s library as well as indicated in a previous discussion.
I was able to compile and run functions from scalapack without any problems is a test executible of my own. I am now attempting to do the same thing is IRIX 6.5.X using 64 bits. The SCALAPACK library is compiling fine in IRIX using standard library settings and the precompiled blacs libraries for Ithe RIX64 platform.

When I attempt to include the "standard" libraries in the Makefile for my small test executible, I am getting the following errors;


CC -c -64 -apo matrixinversetest.cpp -o \
matrixinversetest.o -O3 -64 -apo -I. -I/usr/include -ffloat-store
CC -c -64 -apo main.cpp -o main.o -O3 -64 -apo -I. -I/usr/include -ffloat-store
CC -64 main.o matrixinversetest.o -o "matrixinversetest" /usr/people/sfarris/SCALAPACK/SCALAPACK/libscalapack.a \
/usr/people/sfarris/BLACS/blacsCinit_MPI-IRIX64-0.a /usr/people/sfarris/BLACS/blacs_MPI-IRIX64-0.a -lmpi -lscs_mp -lblas_mp -lmp
ld64: WARNING 84 : /usr/people/sfarris/BLACS/blacsCinit_MPI-IRIX64-0.a is not used for resolving any symbol.
ld64: ERROR 33 : Unresolved text symbol "s_wsfe64" -- 1st referenced by /usr/people/sfarris/SCALAPACK/SCALAPACK/libscalapack.a(pxerbla.o).
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld64: ERROR 33 : Unresolved text symbol "do_fioxh1" -- 1st referenced by /usr/people/sfarris/SCALAPACK/SCALAPACK/libscalapack.a(pxerbla.o).
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld64: ERROR 33 : Unresolved text symbol "e_wsfe64" -- 1st referenced by /usr/people/sfarris/SCALAPACK/SCALAPACK/libscalapack.a(pxerbla.o).
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld64: ERROR 33 : Unresolved text symbol "do_fioxi4v" -- 1st referenced by /usr/people/sfarris/SCALAPACK/SCALAPACK/libscalapack.a(pxerbla.o).
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld64: ERROR 33 : Unresolved text symbol "s_stop" -- 1st referenced by /usr/people/sfarris/SCALAPACK/SCALAPACK/libscalapack.a(xerbla.o).
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld64: INFO 152: Output file removed because of error.
*** Error code 2 (bu21)

This leads me to believe I am missing some form of the "g2c" library as used in LINUX, since I got similar errors until that library was included. Yet, I do not appear to find an equivalent library for the IRIX compiler. IRIX provides one for the gnu compiler within its freeware.

My Makefile is compiling two very simple c files. One is main.cpp which just calls a simple function in the other module called matrixinversetest. The function matrixinversetest just creates the necessary data, and grid, and calls the pzgetrf_ function.

Here is my Makefile;

# Project: matrixinversetest
# Makefile created by Steve Farris 2-15-2005

CPP = CC
CCO = cc

SCALAPACKHOME = $(HOME)/SCALAPACK/SCALAPACK

CPPFLAGS = -I. -I/usr/include

PLAT = IRIX64

BLACSDBGLVL = 0
BLACSdir = $(HOME)/BLACS

USEMPI = -DUsingMpiBlacs
SMPLIB = -lmpi
BLACSFINIT = $(BLACSdir)/blacsF77init_MPI-$(PLAT)-$(BLACSDBGLVL).a
BLACSCINIT = $(BLACSdir)/blacsCinit_MPI-$(PLAT)-$(BLACSDBGLVL).a
BLACSLIB = $(BLACSdir)/blacs_MPI-$(PLAT)-$(BLACSDBGLVL).a
# potential g2c library does not seem to help when included in the link stage.
#?GTOCLIB = /usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.3/mabi=64/libg2c.a

SCALAPACKLIB = $(SCALAPACKHOME)/libscalapack.a
FBLACSLIB = $(BLACSCINIT) $(BLACSLIB) $(BLACSFINIT)
BLASLIB = -lscs

PBLIBS = $(BLACSCINIT) $(BLACSLIB) $(SMPLIB) $(BLASLIB)
LIBS = $(PBLIBS) $(SCALAPACKLIB)

NOOPT =
FORTFLAGS = -O3 -64

OBJ = main.o matrixinversetest.o

LINKOBJ = main.o matrixinversetest.o

BIN = matrixinversetest

all: matrixinversetest.o matrixinversetest


clean:
rm -f $(OBJ) $(BIN)

$(BIN): $(LINKOBJ)
$(CPP) -64 $(LINKOBJ) -o "matrixinversetest" $(SCALAPACKLIB) \
$(BLACSCINIT) $(BLACSLIB) $(SMPLIB) -lscs -lblas -lm

COMPILE_OPT = -O3 -64 -apo $(CPPFLAGS) -ffloat-store

main.o: main.cpp
$(CPP) -c -64 main.cpp -o main.o $(COMPILE_OPT)

matrixinversetest.o: matrixinversetest.cpp
$(CPP) -c -64 matrixinversetest.cpp -o \
matrixinversetest.o $(COMPILE_OPT)

Note: I have included the -lcsc for the SCSL IRIX library that supposedly contains lapack. I am purposely attempting to not run the SCSL multi-processor routines as I have already benchmarked that library. I am attempting to compare the SCSL performance to the SCALAPACK run separately.

Any suggestions as to that which I am doing incorrectly?
sfarris
 
Posts: 2
Joined: Fri Feb 11, 2005 3:40 pm

Resolution

Postby sfarris » Wed Feb 16, 2005 9:37 am

By examining the techpubs for the names that appear as unresolved I found the equivalent
library in IRIX6.5. The equivalent library is the ftn library. Thus, one needs to include the
link directive -lftn. For those who may need this in the future.
sfarris
 
Posts: 2
Joined: Fri Feb 11, 2005 3:40 pm


Return to User Discussion

Who is online

Users browsing this forum: Google [Bot], Yahoo [Bot] and 2 guests