SP vs MP?, Trouble compiling SP

This forum is for issues related to parallel processing
and OpenSees using the new interpreters OpenSeesSP and OpenSeesMP

Moderator: selimgunay

Post Reply
aneeman
Posts: 90
Joined: Thu Jan 12, 2006 1:13 pm
Contact:

SP vs MP?, Trouble compiling SP

Post by aneeman »

Hi,

First a question. What is the difference the build PARALLEL and PARALLEL_INTERPRETERS ?

Second, I am working on building PARALLEL for a dual core 64 bit intel ubuntu linux PC. I installed

mpi-default-dev (0.6, currently openmpi)
petsc-dev (3.0.0)
libmumps-4.9.2 (linear solver, includes scalapack)
libblacs-mpil 1.1-28.2buildl
libblacs-mpi-dev 1.1-28.2buildl
libhpmud0 3.10.2-2ubuntu2.2

For MPI_Channel and mumps I had to descend into the directory below SRC and run make myself. But then I got the
following error when trying to build /OpenSees/SRC/system_of_eqn/linearSOE/mumps

MumpsSolver.cpp: In constructor ‘MumpsSolver::MumpsSolver(int, int)’:
MumpsSolver.cpp:51: error: invalid conversion from ‘ompi_communicator_t*’ to ‘int’
make: *** [MumpsSolver.o] Error 1

Any suggestions?

thanks,

alisa
(Makefile below)

############################################################################
#
# Program: OpenSees
#
# Purpose: A Top-level Makefile to create the libraries needed
# to use the OpenSees framework.
#
# version for parallelized PC (linux ubuntu 10.04)
# installed packages:
# mpi-default-dev (0.6, currently openmpi)
# petsc-dev (3.0.0)
# libmumps-4.9.2 (linear solver, includes scalapack)
# libblacs-mpil 1.1-28.2buildl
# libblacs-mpi-dev 1.1-28.2buildl
# libhpmud0 3.10.2-2ubuntu2.2 (HP Multi-Point Transport Driver (hpmud) run-time libraries)
# Written: fmk
# Created: 01/2003
# NOTES: you have to go into SRC/actor/channel and call make by hand on some
# classes.
# You have to do things by hand in SRC/system_of_eqn/liearSOE/mumps
#
#
############################################################################

# %---------------------------------%
# | SECTION 1: PROGRAM |
# %---------------------------------%
#
# Specify the location and name of the OpenSees interpreter program
# that will be created (if this all works!)

#PROGRAMMING_MODE = PARALLEL, SEQUENTIAL, PARALLEL_INTERPRETERS
PROGRAMMING_MODE = PARALLEL

OpenSees_PROGRAM = $(HOME)/bin/OpenSees
ifeq ($(PROGRAMMING_MODE), PARALLEL)
OpenSees_PROGRAM = $(HOME)/bin/OpenSeesSP
endif

ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS)
OpenSees_PROGRAM = $(HOME)/bin/OpenSeesMP
endif

# %---------------------------------%
# | SECTION 2: MAKEFILE CONSTANTS |
# %---------------------------------%
#
# Specify the constants the are used as control structure variables in the Makefiles.

OPERATING_SYSTEM = LINUX

#DEBUG_MODE = DEBUG, NO_DEBUG
DEBUG_MODE = NO_DEBUG
RELIABILITY = NO_RELIABILITY
GRAPHICS = NONE

# %---------------------------------%
# | SECTION 3: PATHS |
# %---------------------------------%
#
# Note: if vendor supplied BLAS and LAPACK libraries or if you have
# any of the libraries already leave the directory location blank AND
# remove the directory from DIRS.

BASE =
# PUT YOUR HOME DIRECTOREY HERE
HOME = /home/alisanee
FE = $(HOME)/OpenSees/SRC

BLASdir = $(HOME)/OpenSees/OTHER/BLAS
CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS
LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK
ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK
UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK
METISdir = $(HOME)/OpenSees/OTHER/METIS
SRCdir = $(HOME)/OpenSees/SRC
SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_3.0/SRC
SUPERLU_DISTdir = $(HOME)/OpenSees/OTHER/SuperLU_DIST_2.0/SRC

DIRS = $(BLASdir) \
$(CBLASdir) \
$(SUPERLUdir) \
$(SUPERLU_DISTdir) \
$(LAPACKdir) \
$(ARPACKdir) \
$(UMFPACKdir) \
$(METISdir) \
$(SRCdir)

DISTRIBUTED_SUPERLU_LIBRARY = $(HOME)/lib/libDistributedSuperLU.a

ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)

DIRS = $(BLASdir) \
$(CBLASdir) \
$(SUPERLUdir) \
$(LAPACKdir) \
$(ARPACKdir) \
$(UMFPACKdir) \
$(METISdir) \
$(SRCdir)

DISTRIBUTED_SUPERLU_LIBRARY =
endif


# %-------------------------------------------------------%
# | SECTION 4: LIBRARIES |
# | |
# | The following section defines the libraries that will |
# | be created and/or linked with when the libraries are |
# | being created or linked with. |
# %-------------------------------------------------------%
#
# Note: if vendor supplied BLAS and LAPACK libraries leave the
# libraries blank. You have to get your own copy of the tcl/tk
# library!!
#
# Note: For libraries that will be created (any in DIRS above)
# make sure the directory exsists where you want the library to go!

FE_LIBRARY = $(HOME)/lib/libOpenSees.a
NDARRAY_LIBRARY = $(HOME)/lib/libndarray.a # BJ_UCD jeremic@ucdavis.edu
MATMOD_LIBRARY = $(HOME)/lib/libmatmod.a # BJ_UCD jeremic@ucdavis.edu
BJMISC_LIBRARY = $(HOME)/lib/libBJmisc.a # BJ_UCD jeremic@ucdavis.edu
LAPACK_LIBRARY = $(HOME)/lib/libLapack.a
BLAS_LIBRARY = $(HOME)/lib/libBlas.a
SUPERLU_LIBRARY = $(HOME)/lib/libSuperLU.a
CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a
ARPACK_LIBRARY = $(HOME)/lib/libArpack.a
UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a
METIS_LIBRARY = $(HOME)/lib/libMetis.a


TCL_LIBRARY = /usr/lib/libtcl8.4.a

GRAPHIC_LIBRARY =

#RELIABILITY_LIBRARY = $(HOME)/lib/libReliability.a
RELIABILITY_LIBRARY =

# WATCH OUT .. These libraries are removed when 'make wipe' is invoked.

WIPE_LIBS = $(FE_LIBRARY) \
$(NDARRAY_LIBRARY) \
$(MATMOD_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(ARPACK_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(METIS_LIBRARY) \
$(LAPACK_LIBRARY) \
$(BLAS_LIBRARY) \
$(CBLAS_LIBRARY) \
$(RELIABILITY_LIBRARY)

# %---------------------------------------------------------%
# | SECTION 5: COMPILERS |
# | |
# | The following macros specify compilers, linker/loaders, |
# | the archiver, and their options. You need to make sure |
# | these are correct for your system. |
# %---------------------------------------------------------%

# ###################################################
# # Compilers
# ###################################################

ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)

CC++ = icpc
CC = icc
FC = ifort

F90 = ifort
LINKER = $(CC++)

else

CC++ = mpiCC
CC = mpicc
FC = mpif90

F90 = mpif90
FORTRAN = $(FC)

LINKER = $(CC++)

endif

AR = ar
ARCH = ar

ARFLAGS = -q
#ARCHFLAGS = cqls
ARCHFLAGS = -v -q

RANLIB = ranlib

RANLIBFLAGS =


GRAPHIC_FLAG = -D_NOGRAPHICS
PROGRAMMING_FLAG =

ifeq ($(PROGRAMMING_MODE), PARALLEL)
PROGRAMMING_FLAG = -D_PARALLEL_PROCESSING
endif

ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS)
PROGRAMMING_FLAG = -D_PARALLEL_INTERPRETERS
endif

#RELIABILITY_FLAG = -D_RELIABILITY
RELIABILITY_FLAG =

#DEBUG_FLAG = -D_G3DEBUG
DEBUG_FLAG =

MUMPS_FLAG =
PETSC_FLAG =

OPT_FLAG = -O2

COMP_FLAG =

C++FLAGS = -D_LINUX -D_UNIX $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(OPT_FLAG) $(COMP_FLAG)\
$(PROGRAMMING_FLAG) $(PETSC_FLAG) $(MUMPS_FLAG) \
-D_TCL84 -D_BLAS -D_NETINET_PROBLEMS_INTEL


CFLAGS = $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG)$(PROGRAMMING_FLAG) $(OPT_FLAG) $(COMP_FLAG) -D_TCL84 -D_BLAS
FFLAGS = -qextname $(OPT_FLAG) $(COMP_FLAG)
LINKFLAGS =


# Misc
MAKE = make
CD = cd
ECHO = echo
RM = rm
RMFLAGS = -f
SHELL = /bin/sh

# %---------------------------------------------------------%
# | SECTION 6: COMPILATION |
# | |
# | The following macros specify the macros used in |
# | to compile the source code into object code. |
# %---------------------------------------------------------%

.SUFFIXES:
.SUFFIXES: .C .c .f .f90 .cpp .o .cpp

#
# %------------------%
# | Default command. |
# %------------------%
#
.DEFAULT:
@$(ECHO) "Unknown target $@, try: make help"
#
# %-----------------------------------------------%
# | Command to build .o files from source files. |
# %-----------------------------------------------%
#


.cpp.o:
@$(ECHO) Making $@ from $< $@ with $(CC++) $(C++FLAGS) $(INCLUDES) -c $<
@$(CC++) $(C++FLAGS) $(INCLUDES) -c $<


.C.o:
@$(ECHO) Making $@ from $<
$(CC++) $(C++FLAGS) $(INCLUDES) -c $<

.c.o:
@$(ECHO) Making $@ from $<
$(CC) $(CFLAGS) -c $<

.f.o:
@$(ECHO) Making $@ from $<
$(FC) $(FFLAGS) -c $<

.f77.o:
@$(ECHO) Making $@ from $<
$(FC) $(FFLAGS) -c $<

.f90.o:
@$(ECHO) Making $@ from $<
$(FC90) $(FFLAGS) -c $<

# %---------------------------------------------------------%
# | SECTION 7: OTHER LIBRARIES |
# | |
# | The following macros specify other libraries that must |
# | be linked with when creating executables. These are |
# | platform specific and typically order does matter!! |
# %---------------------------------------------------------%
MACHINE_LINKLIBS = -L$(BASE)/lib \
-L$(HOME)/lib


# PETSC
HAVEPETSC = YES


ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
HAVEPETSC = NO
endif

ifeq ($(HAVEPETSC), YES)

PETSC = YES
PETSC_FLAG = -D_PETSC
PETSC_DIR = /usr
PETSC_ARCH = linux-gnu
BOPT = O

PETSC_INC = -I$(PETSC_DIR)/include/petsc -I$(PETSC_DIR)/include/petsc/finclude -D_PETSC
PETSC_LIB = -L$(PETSC_DIR)/lib \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSOE.o \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSolver.o \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSparseSeqSolver.o \
-lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc \
-L/usr/X11/lib -lX11 -lGL

endif


HAVEMUMPS = YES
MUMPS_INCLUDE =
MUMPS_LIB =

ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
HAVEMUMPS = NO
endif

ifeq ($(HAVEMUMPS), YES)

MUMPS = YES
MUMPS_FLAG = -D_MUMPS
#MUMPS_DIR = /gpfs/fmk/MUMPS_4.6.4
MUMPS_DIR = /usr



BLACSdir = /usr

#BLACSDBGLVL = 0
BLACSFINIT = $(BLACSdir)/lib/libblacsF77init-openmpi.a
BLACSCINIT = $(BLACSdir)/lib/libblacsCinit-openmpi.a
BLACSLIB = $(BLACSdir)/lib/libblacs-openmpi.a
CBLACSLIB = $(BLACSLIB) $(BLACSCINIT)
FBLACSLIB = $(BLACSLIB) $(BLACSFINIT)

BLACSlib = $(CBLACSLIB)

SCALAPdir = /usr
SCALAPlib = $(SCALAPdir)/lib/libscalapack-openmpi.a

SCALAP = $(BLACSlib) $(SCALAPlib) $(BLACSlib)

MUMPS_LIB = -L$(MUMPS_DIR)/lib \
-ldmumps$(PLAT) \
-lpord$(PLAT) \
$(SCALAP) \
$(FE)/system_of_eqn/linearSOE/mumps/MumpsSOE.o \
$(FE)/system_of_eqn/linearSOE/mumps/MumpsSolver.o \
$(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o \
$(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o

MUMPS_INCLUDE = -I$(MUMPS_DIR)/include

endif

PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o \
$(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o \
$(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \
$(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o


ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
PARALLEL_LIB =
endif

HPM_LIB = -L/usr -l/usr/libhpmud.so \
-lhpmud -lhpm_r -lpmapi -lm

MACHINE_NUMERICAL_LIBS = -lm \
$(ARPACK_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(GRAPHIC_LIBRARY)\
$(RELIABILITY_LIBRARY) \
$(DISTRIBUTED_SUPERLU_LIBRARY) \
$(METIS_LIBRARY) $(PARALLEL_LIB) $(PETSC_LIB) $(MUMPS_LIB)


MACHINE_SPECIFIC_LIBS = -L${MKL_HOME}/lib/64 -lmkl_lapack -lmkl_ipf -lguide -lpthread \

#/usr/local/apps/intel/compiler8/lib/libifcoremt.a

# %---------------------------------------------------------%
# | SECTION 8: INCLUDE FILES |
# | |
# | The following macros specify include files needed for |
# | compilation. |
# %---------------------------------------------------------%

MACHINE_INCLUDES = -I/usr/local/BerkeleyDB.4.0/include \
-I/usr/include/mysql \
-I$(HOME)/include \
-I$(UMFPACKdir) \
-I$(SUPERLUdir) \
-I$(SUPERLU_DISTdir) \
$(PETSC_INC) $(MUMPS_INCLUDE)


# this file contains all the OpenSees/SRC includes
include $(FE)/Makefile.incl

#TCL_INCLUDES = -I/home/fmk/tcl8.3.3/generic
TCL_INCLUDES = -I/usr/include/tcl8.4 -I/usr/include/


INCLUDES = $(MACHINE_INCLUDES) $(TCL_INCLUDES) $(FE_INCLUDES)
aneeman
Posts: 90
Joined: Thu Jan 12, 2006 1:13 pm
Contact:

mumps solution

Post by aneeman »

Hmm so, I looked at the code and the problem line was

#ifdef _OPENMPI
id.comm_fortran=-987654;
#else
id.comm_fortran=MPI_COMM_WORLD;
#endif

It looks the flag in Makefile.def you need
MUMPS_FLAG = -D_MUMPS -D_OPENMPI

for my case.

Be careful, some of the Makefile.defs define
MUMPS_FLAG twice.
aneeman
Posts: 90
Joined: Thu Jan 12, 2006 1:13 pm
Contact:

next sticking point: no parameter-free constructor for Petsc

Post by aneeman »

Compile error:

FEM_ObjectBrokerAllClasses.cpp: In member function ‘virtual LinearSOE* FEM_ObjectBrokerAllClasses::getNewLinearSOE(int)’:
FEM_ObjectBrokerAllClasses.cpp:1597: error: no matching function for call to ‘PetscSOE::PetscSOE()’
/home/alisanee/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSOE.h:52: note: candidates are: PetscSOE::PetscSOE(PetscSolver&, int)
/home/alisanee/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSOE.h:50: note: PetscSOE::PetscSOE(const PetscSOE&)
make[3]: *** [FEM_ObjectBrokerAllClasses.o] Error 1

Line of code causing difficulty:
#ifdef _PETSC
case LinSOE_TAGS_PetscSOE:
theSOE - new PetscSOE();
return theSOE;

There is no parameter-free constructor for PetscSOE.
hsafti
Posts: 68
Joined: Thu Apr 22, 2010 5:38 am
Location: Braunschweig

Building OpenSeesSP in Ubuntu 10.10

Post by hsafti »

Hi Aneeman,

Thanks a lot for posting your makefile.def. I am trying to build OpenSeesSP on Ubuntu 10.10 64bit. So If you were successful in the build process please share the final (working) file (hsafti(at)gmail(dot)com).

It would also be nice of you to post the libraries installations needed for building.

Best Regards
Hisham El Safti
aneeman
Posts: 90
Joined: Thu Jan 12, 2006 1:13 pm
Contact:

Re: SP vs MP?, Trouble compiling SP

Post by aneeman »

I manually repaired the bug
Compile error:

FEM_ObjectBrokerAllClasses.cpp: In member function ‘virtual LinearSOE* FEM_ObjectBrokerAllClasses::getNewLinearSOE(int)’:
FEM_ObjectBrokerAllClasses.cpp:1597: error: no matching function for call to ‘PetscSOE::PetscSOE()’
/home/alisanee/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSOE.h:52: note: candidates are: PetscSOE::PetscSOE(PetscSolver&, int)
/home/alisanee/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSOE.h:50: note: PetscSOE::PetscSOE(const PetscSOE&)
make[3]: *** [FEM_ObjectBrokerAllClasses.o] Error 1

by adding a default (no parameter constructor) to PetscSOE

PetscSOE::PetscSOE()
:LinearSOE(LinSOE_TAGS_PetscSOE),
isFactored(0),size(0), processID(0), numProcesses(0), B(0), X(0),
indices(0), vectX(0), vectB(0), A(0), x(0), b(0), blockSize(1),
numChannels(0), theChannels(0), localCol(0)
{
;
}

However, there is another compile bug, multiple errors because the mpiCC compiler does not like to accept C++ forward declarations

I get a whole bunch of errors like;
DistributedSuperLU.cpp:(.text+0xa40): multiple definition of `DistributedSuperLU::DistributedSuperLU(int, int)'
/home/alisanee/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xa40): first defined here

alisanee@cole:~$ mpiCC --version
g++-4.4.real (Ubuntu 4.4.3-4ubuntu5) 4.4.3

So far I have not been able to complete the compile on Ubuntu 64 bit.
hsafti
Posts: 68
Joined: Thu Apr 22, 2010 5:38 am
Location: Braunschweig

Re: SP vs MP?, Trouble compiling SP

Post by hsafti »

Hi Alisa

Thanks a lot for your support. I would like to add that a further library installation (libmumps-dev) is needed (for future readers).

I have tried your file and got the same results (just to check). Then I changed the compilers:

CC++ = /usr/bin/g++
CC = /usr/bin/gcc
FC = /usr/bin/g77
FORTRAN = /usr/bin/g77
F90 = ifort
LINKER = /usr/local/mpi/bin/mpicxx

and included mpi:

MPICC = mpicc
MPIINC = -I/usr/include/openmpi
MPILIB = -L/usr/include/openmpi -lmpich

MACHINE_SPECIFIC_LIBS = -L${MKL_HOME}/lib/64 -lmkl_lapack -lmkl_ipf -lguide -lpthread $(MPILIB)\

MACHINE_INCLUDES = $(MPIINC) -I/usr/local/BerkeleyDB.4.0/include \
-I/usr/include/mysql \
-I$(HOME)/include \
-I$(UMFPACKdir) \
-I$(SUPERLUdir) \
-I$(SUPERLU_DISTdir) \
$(PETSC_INC) $(MUMPS_INCLUDE)


Upon make, I recieved a message that mpicxx is not found (I guess I need to install Intel compiler or something). Instead I changed the linker:

LINKER = $(CC++)

upon make, I got this error:
make[2]: Leaving directory `/home/hisham/OpenSees/SRC/tcl'
g++: /home/hisham/lib/libOpenSees.a: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: No such file or directory
g++: /home/hisham/lib/libArpack.a: No such file or directory
g++: /home/hisham/lib/libUmfpack.a: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSOE.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSolver.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSparseSeqSolver.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/mumps/MumpsSOE.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/mumps/MumpsSolver.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o: No such file or directory
g++: /home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o: No such file or directory
make[1]: *** [tk] Error 1
make[1]: Leaving directory `/home/hisham/OpenSees/SRC/modelbuilder/tcl'
make: *** [all] Error 2


I also had: make[3]: /usr/bin/g77: Command not found


I appreciate your help and comments .... I am a newbie to the lot so please bare with me :)

Best regards,
Hisham
Hisham El Safti
hsafti
Posts: 68
Joined: Thu Apr 22, 2010 5:38 am
Location: Braunschweig

Re: SP vs MP?, Trouble compiling SP

Post by hsafti »

I found mpicxx in /usr/bin so I changed the linker :

LINKER = /usr/bin/mpicxx

the output is an error like the previous one:

tu/OpenSees/SRC/../OTHER/AMD -c tkAppInit.cpp
make[2]: Leaving directory `/home/numubuntu/OpenSees/SRC/tcl'
g++: /home/numubuntu/lib/libOpenSees.a: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: No such file or directory
g++: /home/numubuntu/lib/libArpack.a: No such file or directory
g++: /home/numubuntu/lib/libUmfpack.a: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSOE.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSolver.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSparseSeqSolver.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/mumps/MumpsSOE.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/mumps/MumpsSolver.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o: No such file or directory
g++: /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o: No such file or directory
make[1]: *** [tk] Error 1
make[1]: Leaving directory `/home/numubuntu/OpenSees/SRC/modelbuilder/tcl'
make: *** [all] Error 2
numubuntu@numubuntu-System-Product-Name:~/OpenSees$

I will try to compile from inside the directories!

Edit1:

After initiating make from inside /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/mumps
& /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/petsc & /home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/diagonal

Back to OpenSees directory and another make yields:

make[2]: Entering directory `/home/numubuntu/OpenSees/SRC/tcl'
make[2]: Nothing to be done for `tk'.
make[2]: Leaving directory `/home/numubuntu/OpenSees/SRC/tcl'
g++: /home/numubuntu/lib/libOpenSees.a: No such file or directory
g++: /home/numubuntu/lib/libArpack.a: No such file or directory
g++: /home/numubuntu/lib/libUmfpack.a: No such file or directory
make[1]: *** [tk] Error 1
make[1]: Leaving directory `/home/numubuntu/OpenSees/SRC/modelbuilder/tcl'
make: *** [all] Error 2

A step forward I think


EDit2: changed the FORTRAN compiler

FC = /usr/bin/gfortran
FORTRAN = /usr/bin/gfortran

upon make libs:
10 Libraries are compiled. And the error:

FEM_ObjectBrokerAllClasses.cpp: In member function ‘virtual LinearSOE* FEM_ObjectBrokerAllClasses::getNewLinearSOE(int)’:
FEM_ObjectBrokerAllClasses.cpp:1599: error: no matching function for call to ‘PetscSOE::PetscSOE()’
/home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSOE.h:52: note: candidates are: PetscSOE::PetscSOE(PetscSolver&, int)
/home/numubuntu/OpenSees/SRC/system_of_eqn/linearSOE/petsc/PetscSOE.h:50: note: PetscSOE::PetscSOE(const PetscSOE&)
make[3]: *** [FEM_ObjectBrokerAllClasses.o] Error 1
make[3]: Leaving directory `/home/numubuntu/OpenSees/SRC/actor/objectBroker'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/numubuntu/OpenSees/SRC/actor'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/numubuntu/OpenSees/SRC'


Back to square one!
Hisham El Safti
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: SP vs MP?, Trouble compiling SP

Post by fmk »

sorry about the choice of words .. they came before i settled on a name for the .exe

PARALLEL builds OpenSeesSP
PARALLEL_INTERPRETERS builds OpenSeesMP
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: SP vs MP?, Trouble compiling SP

Post by fmk »

i suggest you try to get the exe to compile with mumps, you can leavepetsc out .. use HAVEPETSC = NO

type make in OpenSees/SRC/system_of_eqn/linearSOE/mumps to get the Mumps files to compile
hsafti
Posts: 68
Joined: Thu Apr 22, 2010 5:38 am
Location: Braunschweig

Re: SP vs MP?, Trouble compiling SP

Post by hsafti »

Thanks a lot Frank. The libraries were built successfully. However, upon building OpenSees I get:


ColLinSOE.o: In function `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1c40): multiple definition of `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1c40): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1d00): multiple definition of `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1d00): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1db0): multiple definition of `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1db0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1e60): multiple definition of `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1e60): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1ec0): multiple definition of `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1ec0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)':
DistributedSparseGenColLinSOE.cpp:(.text+0x1f20): multiple definition of `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1f20): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)':
DistributedSparseGenColLinSOE.cpp:(.text+0x1fb0): multiple definition of `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1fb0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::setProcessID(int)':
DistributedSuperLU.cpp:(.text+0x0): multiple definition of `DistributedSuperLU::setProcessID(int)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::setChannels(int, Channel**)':
DistributedSuperLU.cpp:(.text+0x20): multiple definition of `DistributedSuperLU::setChannels(int, Channel**)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x20): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::recvSelf(int, Channel&, FEM_ObjectBroker&)':
DistributedSuperLU.cpp:(.text+0x110): multiple definition of `DistributedSuperLU::recvSelf(int, Channel&, FEM_ObjectBroker&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x110): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::sendSelf(int, Channel&)':
DistributedSuperLU.cpp:(.text+0x230): multiple definition of `DistributedSuperLU::sendSelf(int, Channel&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x230): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::setSize()':
DistributedSuperLU.cpp:(.text+0x450): multiple definition of `DistributedSuperLU::setSize()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x450): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::solve()':
DistributedSuperLU.cpp:(.text+0x610): multiple definition of `DistributedSuperLU::solve()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x610): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::~DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0x8e0): multiple definition of `DistributedSuperLU::~DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x8e0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::~DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0x950): multiple definition of `DistributedSuperLU::~DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x950): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::~DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0x9b0): multiple definition of `DistributedSuperLU::~DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x9b0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0xa10): multiple definition of `DistributedSuperLU::DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xa10): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0xa70): multiple definition of `DistributedSuperLU::DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xa70): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::DistributedSuperLU(int, int)':
DistributedSuperLU.cpp:(.text+0xad0): multiple definition of `DistributedSuperLU::DistributedSuperLU(int, int)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xad0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::DistributedSuperLU(int, int)':
DistributedSuperLU.cpp:(.text+0xb30): multiple definition of `DistributedSuperLU::DistributedSuperLU(int, int)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xb30): first defined here
/usr/bin/ld: cannot find -lmkl_lapack
/usr/bin/ld: cannot find -lmkl_ipf
/usr/bin/ld: cannot find -lguide
collect2: ld returned 1 exit status
make[1]: *** [tk] Error 1
make[1]: Leaving directory `/home/hisham/OpenSees/SRC/modelbuilder/tcl'
make: *** [tcl] Error 2
hisham@hisham-virtual-machine:~/OpenSees$ make OpenSees > log
Makefile:30: warning: overriding commands for target `tcl'
Makefile:13: warning: ignoring old commands for target `tcl'
Makefile:41: warning: overriding commands for target `tk'
Makefile:21: warning: ignoring old commands for target `tk'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::getNumEqn() const':
DistributedDiagonalSOE.cpp:(.text+0x0): multiple definition of `DistributedDiagonalSOE::getNumEqn() const'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::addA(Matrix const&, ID const&, double)':
DistributedDiagonalSOE.cpp:(.text+0x10): multiple definition of `DistributedDiagonalSOE::addA(Matrix const&, ID const&, double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x10): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::addB(Vector const&, ID const&, double)':
DistributedDiagonalSOE.cpp:(.text+0x160): multiple definition of `DistributedDiagonalSOE::addB(Vector const&, ID const&, double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x160): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setB(Vector const&, double)':
DistributedDiagonalSOE.cpp:(.text+0x290): multiple definition of `DistributedDiagonalSOE::setB(Vector const&, double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x290): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::zeroA()':
DistributedDiagonalSOE.cpp:(.text+0x3e0): multiple definition of `DistributedDiagonalSOE::zeroA()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x3e0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::zeroB()':
DistributedDiagonalSOE.cpp:(.text+0x410): multiple definition of `DistributedDiagonalSOE::zeroB()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x410): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setX(int, double)':
DistributedDiagonalSOE.cpp:(.text+0x440): multiple definition of `DistributedDiagonalSOE::setX(int, double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x440): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setAnalysisModel(AnalysisModel&)':
DistributedDiagonalSOE.cpp:(.text+0x480): multiple definition of `DistributedDiagonalSOE::setAnalysisModel(AnalysisModel&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x480): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setChannels(int, Channel**)':
DistributedDiagonalSOE.cpp:(.text+0x490): multiple definition of `DistributedDiagonalSOE::setChannels(int, Channel**)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x490): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setDiagonalSolver(DistributedDiagonalSolver&)':
DistributedDiagonalSOE.cpp:(.text+0x520): multiple definition of `DistributedDiagonalSOE::setDiagonalSolver(DistributedDiagonalSolver&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x520): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::recvSelf(int, Channel&, FEM_ObjectBroker&)':
DistributedDiagonalSOE.cpp:(.text+0x5a0): multiple definition of `DistributedDiagonalSOE::recvSelf(int, Channel&, FEM_ObjectBroker&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x5a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::sendSelf(int, Channel&)':
DistributedDiagonalSOE.cpp:(.text+0x710): multiple definition of `DistributedDiagonalSOE::sendSelf(int, Channel&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x710): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::normRHS()':
DistributedDiagonalSOE.cpp:(.text+0x980): multiple definition of `DistributedDiagonalSOE::normRHS()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x980): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::getB()':
DistributedDiagonalSOE.cpp:(.text+0x9e0): multiple definition of `DistributedDiagonalSOE::getB()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x9e0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::getX()':
DistributedDiagonalSOE.cpp:(.text+0xa20): multiple definition of `DistributedDiagonalSOE::getX()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0xa20): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setX(Vector const&)':
DistributedDiagonalSOE.cpp:(.text+0xa60): multiple definition of `DistributedDiagonalSOE::setX(Vector const&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0xa60): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setSize(Graph&)':
DistributedDiagonalSOE.cpp:(.text+0xa90): multiple definition of `DistributedDiagonalSOE::setSize(Graph&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0xa90): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::~DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1590): multiple definition of `DistributedDiagonalSOE::~DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1590): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::~DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1690): multiple definition of `DistributedDiagonalSOE::~DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1690): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::~DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1790): multiple definition of `DistributedDiagonalSOE::~DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1790): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1890): multiple definition of `DistributedDiagonalSOE::DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1890): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1990): multiple definition of `DistributedDiagonalSOE::DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1990): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::DistributedDiagonalSOE(DistributedDiagonalSolver&)':
DistributedDiagonalSOE.cpp:(.text+0x1a90): multiple definition of `DistributedDiagonalSOE::DistributedDiagonalSOE(DistributedDiagonalSolver&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1a90): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::DistributedDiagonalSOE(DistributedDiagonalSolver&)':
DistributedDiagonalSOE.cpp:(.text+0x1bb0): multiple definition of `DistributedDiagonalSOE::DistributedDiagonalSOE(DistributedDiagonalSolver&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1bb0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::setLinearSOE(DistributedDiagonalSOE&)':
DistributedDiagonalSolver.cpp:(.text+0x0): multiple definition of `DistributedDiagonalSolver::setLinearSOE(DistributedDiagonalSOE&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::setSize()':
DistributedDiagonalSolver.cpp:(.text+0x10): multiple definition of `DistributedDiagonalSolver::setSize()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x10): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::recvSelf(int, Channel&, FEM_ObjectBroker&)':
DistributedDiagonalSolver.cpp:(.text+0x20): multiple definition of `DistributedDiagonalSolver::recvSelf(int, Channel&, FEM_ObjectBroker&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x20): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::sendSelf(int, Channel&)':
DistributedDiagonalSolver.cpp:(.text+0xe0): multiple definition of `DistributedDiagonalSolver::sendSelf(int, Channel&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0xe0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::solve()':
DistributedDiagonalSolver.cpp:(.text+0x1a0): multiple definition of `DistributedDiagonalSolver::solve()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x1a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::~DistributedDiagonalSolver()':
DistributedDiagonalSolver.cpp:(.text+0x480): multiple definition of `DistributedDiagonalSolver::~DistributedDiagonalSolver()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x480): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::~DistributedDiagonalSolver()':
DistributedDiagonalSolver.cpp:(.text+0x4a0): multiple definition of `DistributedDiagonalSolver::~DistributedDiagonalSolver()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x4a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::~DistributedDiagonalSolver()':
DistributedDiagonalSolver.cpp:(.text+0x4c0): multiple definition of `DistributedDiagonalSolver::~DistributedDiagonalSolver()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x4c0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::DistributedDiagonalSolver(double)':
DistributedDiagonalSolver.cpp:(.text+0x4f0): multiple definition of `DistributedDiagonalSolver::DistributedDiagonalSolver(double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x4f0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::DistributedDiagonalSolver(double)':
DistributedDiagonalSolver.cpp:(.text+0x530): multiple definition of `DistributedDiagonalSolver::DistributedDiagonalSolver(double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x530): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::DistributedDiagonalSolver(int)':
DistributedDiagonalSolver.cpp:(.text+0x570): multiple definition of `DistributedDiagonalSolver::DistributedDiagonalSolver(int)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x570): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::DistributedDiagonalSolver(int)':
DistributedDiagonalSolver.cpp:(.text+0x5b0): multiple definition of `DistributedDiagonalSolver::DistributedDiagonalSolver(int)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x5b0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::getNumEqn() const':
DistributedDiagonalSOE.cpp:(.text+0x0): multiple definition of `DistributedDiagonalSOE::getNumEqn() const'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::addA(Matrix const&, ID const&, double)':
DistributedDiagonalSOE.cpp:(.text+0x10): multiple definition of `DistributedDiagonalSOE::addA(Matrix const&, ID const&, double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x10): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::addB(Vector const&, ID const&, double)':
DistributedDiagonalSOE.cpp:(.text+0x160): multiple definition of `DistributedDiagonalSOE::addB(Vector const&, ID const&, double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x160): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setB(Vector const&, double)':
DistributedDiagonalSOE.cpp:(.text+0x290): multiple definition of `DistributedDiagonalSOE::setB(Vector const&, double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x290): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::zeroA()':
DistributedDiagonalSOE.cpp:(.text+0x3e0): multiple definition of `DistributedDiagonalSOE::zeroA()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x3e0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::zeroB()':
DistributedDiagonalSOE.cpp:(.text+0x410): multiple definition of `DistributedDiagonalSOE::zeroB()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x410): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setX(int, double)':
DistributedDiagonalSOE.cpp:(.text+0x440): multiple definition of `DistributedDiagonalSOE::setX(int, double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x440): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setAnalysisModel(AnalysisModel&)':
DistributedDiagonalSOE.cpp:(.text+0x480): multiple definition of `DistributedDiagonalSOE::setAnalysisModel(AnalysisModel&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x480): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setChannels(int, Channel**)':
DistributedDiagonalSOE.cpp:(.text+0x490): multiple definition of `DistributedDiagonalSOE::setChannels(int, Channel**)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x490): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setDiagonalSolver(DistributedDiagonalSolver&)':
DistributedDiagonalSOE.cpp:(.text+0x520): multiple definition of `DistributedDiagonalSOE::setDiagonalSolver(DistributedDiagonalSolver&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x520): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::recvSelf(int, Channel&, FEM_ObjectBroker&)':
DistributedDiagonalSOE.cpp:(.text+0x5a0): multiple definition of `DistributedDiagonalSOE::recvSelf(int, Channel&, FEM_ObjectBroker&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x5a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::sendSelf(int, Channel&)':
DistributedDiagonalSOE.cpp:(.text+0x710): multiple definition of `DistributedDiagonalSOE::sendSelf(int, Channel&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x710): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::normRHS()':
DistributedDiagonalSOE.cpp:(.text+0x980): multiple definition of `DistributedDiagonalSOE::normRHS()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x980): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::getB()':
DistributedDiagonalSOE.cpp:(.text+0x9e0): multiple definition of `DistributedDiagonalSOE::getB()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x9e0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::getX()':
DistributedDiagonalSOE.cpp:(.text+0xa20): multiple definition of `DistributedDiagonalSOE::getX()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0xa20): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setX(Vector const&)':
DistributedDiagonalSOE.cpp:(.text+0xa60): multiple definition of `DistributedDiagonalSOE::setX(Vector const&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0xa60): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::setSize(Graph&)':
DistributedDiagonalSOE.cpp:(.text+0xa90): multiple definition of `DistributedDiagonalSOE::setSize(Graph&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0xa90): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::~DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1590): multiple definition of `DistributedDiagonalSOE::~DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1590): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::~DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1690): multiple definition of `DistributedDiagonalSOE::~DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1690): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::~DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1790): multiple definition of `DistributedDiagonalSOE::~DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1790): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1890): multiple definition of `DistributedDiagonalSOE::DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1890): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::DistributedDiagonalSOE()':
DistributedDiagonalSOE.cpp:(.text+0x1990): multiple definition of `DistributedDiagonalSOE::DistributedDiagonalSOE()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1990): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::DistributedDiagonalSOE(DistributedDiagonalSolver&)':
DistributedDiagonalSOE.cpp:(.text+0x1a90): multiple definition of `DistributedDiagonalSOE::DistributedDiagonalSOE(DistributedDiagonalSolver&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1a90): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o: In function `DistributedDiagonalSOE::DistributedDiagonalSOE(DistributedDiagonalSolver&)':
DistributedDiagonalSOE.cpp:(.text+0x1bb0): multiple definition of `DistributedDiagonalSOE::DistributedDiagonalSOE(DistributedDiagonalSolver&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSOE.o):DistributedDiagonalSOE.cpp:(.text+0x1bb0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::setLinearSOE(DistributedDiagonalSOE&)':
DistributedDiagonalSolver.cpp:(.text+0x0): multiple definition of `DistributedDiagonalSolver::setLinearSOE(DistributedDiagonalSOE&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::setSize()':
DistributedDiagonalSolver.cpp:(.text+0x10): multiple definition of `DistributedDiagonalSolver::setSize()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x10): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::recvSelf(int, Channel&, FEM_ObjectBroker&)':
DistributedDiagonalSolver.cpp:(.text+0x20): multiple definition of `DistributedDiagonalSolver::recvSelf(int, Channel&, FEM_ObjectBroker&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x20): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::sendSelf(int, Channel&)':
DistributedDiagonalSolver.cpp:(.text+0xe0): multiple definition of `DistributedDiagonalSolver::sendSelf(int, Channel&)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0xe0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::solve()':
DistributedDiagonalSolver.cpp:(.text+0x1a0): multiple definition of `DistributedDiagonalSolver::solve()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x1a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::~DistributedDiagonalSolver()':
DistributedDiagonalSolver.cpp:(.text+0x480): multiple definition of `DistributedDiagonalSolver::~DistributedDiagonalSolver()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x480): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::~DistributedDiagonalSolver()':
DistributedDiagonalSolver.cpp:(.text+0x4a0): multiple definition of `DistributedDiagonalSolver::~DistributedDiagonalSolver()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x4a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::~DistributedDiagonalSolver()':
DistributedDiagonalSolver.cpp:(.text+0x4c0): multiple definition of `DistributedDiagonalSolver::~DistributedDiagonalSolver()'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x4c0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::DistributedDiagonalSolver(double)':
DistributedDiagonalSolver.cpp:(.text+0x4f0): multiple definition of `DistributedDiagonalSolver::DistributedDiagonalSolver(double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x4f0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::DistributedDiagonalSolver(double)':
DistributedDiagonalSolver.cpp:(.text+0x530): multiple definition of `DistributedDiagonalSolver::DistributedDiagonalSolver(double)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x530): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::DistributedDiagonalSolver(int)':
DistributedDiagonalSolver.cpp:(.text+0x570): multiple definition of `DistributedDiagonalSolver::DistributedDiagonalSolver(int)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x570): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o: In function `DistributedDiagonalSolver::DistributedDiagonalSolver(int)':
DistributedDiagonalSolver.cpp:(.text+0x5b0): multiple definition of `DistributedDiagonalSolver::DistributedDiagonalSolver(int)'
/home/hisham/lib/libOpenSees.a(DistributedDiagonalSolver.o):DistributedDiagonalSolver.cpp:(.text+0x5b0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::addA(Matrix const&, ID const&, double)':
DistributedSparseGenColLinSOE.cpp:(.text+0x0): multiple definition of `DistributedSparseGenColLinSOE::addA(Matrix const&, ID const&, double)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::addB(Vector const&, ID const&, double)':
DistributedSparseGenColLinSOE.cpp:(.text+0x240): multiple definition of `DistributedSparseGenColLinSOE::addB(Vector const&, ID const&, double)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x240): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::setB(Vector const&, double)':
DistributedSparseGenColLinSOE.cpp:(.text+0x3a0): multiple definition of `DistributedSparseGenColLinSOE::setB(Vector const&, double)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x3a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::zeroB()':
DistributedSparseGenColLinSOE.cpp:(.text+0x4f0): multiple definition of `DistributedSparseGenColLinSOE::zeroB()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x4f0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::setProcessID(int)':
DistributedSparseGenColLinSOE.cpp:(.text+0x520): multiple definition of `DistributedSparseGenColLinSOE::setProcessID(int)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x520): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::setChannels(int, Channel**)':
DistributedSparseGenColLinSOE.cpp:(.text+0x530): multiple definition of `DistributedSparseGenColLinSOE::setChannels(int, Channel**)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x530): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::recvSelf(int, Channel&, FEM_ObjectBroker&)':
DistributedSparseGenColLinSOE.cpp:(.text+0x5c0): multiple definition of `DistributedSparseGenColLinSOE::recvSelf(int, Channel&, FEM_ObjectBroker&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x5c0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::sendSelf(int, Channel&)':
DistributedSparseGenColLinSOE.cpp:(.text+0x6a0): multiple definition of `DistributedSparseGenColLinSOE::sendSelf(int, Channel&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x6a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::getB()':
DistributedSparseGenColLinSOE.cpp:(.text+0x8a0): multiple definition of `DistributedSparseGenColLinSOE::getB()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x8a0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::solve()':
DistributedSparseGenColLinSOE.cpp:(.text+0xa00): multiple definition of `DistributedSparseGenColLinSOE::solve()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0xa00): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::setSize(Graph&)':
DistributedSparseGenColLinSOE.cpp:(.text+0xd90): multiple definition of `DistributedSparseGenColLinSOE::setSize(Graph&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0xd90): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1c40): multiple definition of `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1c40): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1d00): multiple definition of `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1d00): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1db0): multiple definition of `DistributedSparseGenColLinSOE::~DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1db0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1e60): multiple definition of `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1e60): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()':
DistributedSparseGenColLinSOE.cpp:(.text+0x1ec0): multiple definition of `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1ec0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)':
DistributedSparseGenColLinSOE.cpp:(.text+0x1f20): multiple definition of `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1f20): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o: In function `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)':
DistributedSparseGenColLinSOE.cpp:(.text+0x1fb0): multiple definition of `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o:DistributedSparseGenColLinSOE.cpp:(.text+0x1fb0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::setProcessID(int)':
DistributedSuperLU.cpp:(.text+0x0): multiple definition of `DistributedSuperLU::setProcessID(int)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::setChannels(int, Channel**)':
DistributedSuperLU.cpp:(.text+0x20): multiple definition of `DistributedSuperLU::setChannels(int, Channel**)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x20): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::recvSelf(int, Channel&, FEM_ObjectBroker&)':
DistributedSuperLU.cpp:(.text+0x110): multiple definition of `DistributedSuperLU::recvSelf(int, Channel&, FEM_ObjectBroker&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x110): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::sendSelf(int, Channel&)':
DistributedSuperLU.cpp:(.text+0x230): multiple definition of `DistributedSuperLU::sendSelf(int, Channel&)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x230): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::setSize()':
DistributedSuperLU.cpp:(.text+0x450): multiple definition of `DistributedSuperLU::setSize()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x450): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::solve()':
DistributedSuperLU.cpp:(.text+0x610): multiple definition of `DistributedSuperLU::solve()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x610): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::~DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0x8e0): multiple definition of `DistributedSuperLU::~DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x8e0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::~DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0x950): multiple definition of `DistributedSuperLU::~DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x950): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::~DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0x9b0): multiple definition of `DistributedSuperLU::~DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0x9b0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0xa10): multiple definition of `DistributedSuperLU::DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xa10): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::DistributedSuperLU()':
DistributedSuperLU.cpp:(.text+0xa70): multiple definition of `DistributedSuperLU::DistributedSuperLU()'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xa70): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::DistributedSuperLU(int, int)':
DistributedSuperLU.cpp:(.text+0xad0): multiple definition of `DistributedSuperLU::DistributedSuperLU(int, int)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xad0): first defined here
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o: In function `DistributedSuperLU::DistributedSuperLU(int, int)':
DistributedSuperLU.cpp:(.text+0xb30): multiple definition of `DistributedSuperLU::DistributedSuperLU(int, int)'
/home/hisham/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o:DistributedSuperLU.cpp:(.text+0xb30): first defined here
/usr/bin/ld: cannot find -lmkl_lapack
/usr/bin/ld: cannot find -lmkl_ipf
/usr/bin/ld: cannot find -lguide
collect2: ld returned 1 exit status
make[1]: *** [tk] Error 1
make: *** [tcl] Error 2
Hisham El Safti
hsafti
Posts: 68
Joined: Thu Apr 22, 2010 5:38 am
Location: Braunschweig

Re: SP vs MP?, Trouble compiling SP

Post by hsafti »

The current makefile.def is:




############################################################################
#
# Program: OpenSees
#
# Purpose: A Top-level Makefile to create the libraries needed
# to use the OpenSees framework.
#
# version for parallelized PC (linux ubuntu 10.04)
# installed packages:
# mpi-default-dev (0.6, currently openmpi)
# petsc-dev (3.0.0)
# libmumps-4.9.2 (linear solver, includes scalapack)
# libblacs-mpi1 1.1-28.2buildl
# libblacs-mpi-dev 1.1-28.2buildl
# libhpmud0 3.10.2-2ubuntu2.2 (HP Multi-Point Transport Driver (hpmud) run-time libraries)
# libmumps-dev
# Written: fmk
# Created: 01/2003
# NOTES: you have to go into SRC/actor/channel and call make by hand on some
# classes.
# You have to do things by hand in SRC/system_of_eqn/liearSOE/mumps
#
#
############################################################################

# %---------------------------------%
# | SECTION 1: PROGRAM |
# %---------------------------------%
#
# Specify the location and name of the OpenSees interpreter program
# that will be created (if this all works!)

#PROGRAMMING_MODE = PARALLEL, SEQUENTIAL, PARALLEL_INTERPRETERS
PROGRAMMING_MODE = PARALLEL

OpenSees_PROGRAM = $(HOME)/bin/OpenSees
ifeq ($(PROGRAMMING_MODE), PARALLEL)
OpenSees_PROGRAM = $(HOME)/bin/OpenSeesSP
endif

ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS)
OpenSees_PROGRAM = $(HOME)/bin/OpenSeesMP
endif

# %---------------------------------%
# | SECTION 2: MAKEFILE CONSTANTS |
# %---------------------------------%
#
# Specify the constants the are used as control structure variables in the Makefiles.

OPERATING_SYSTEM = LINUX

#DEBUG_MODE = DEBUG, NO_DEBUG
DEBUG_MODE = NO_DEBUG
RELIABILITY = NO_RELIABILITY
GRAPHICS = NONE

# %---------------------------------%
# | SECTION 3: PATHS |
# %---------------------------------%
#
# Note: if vendor supplied BLAS and LAPACK libraries or if you have
# any of the libraries already leave the directory location blank AND
# remove the directory from DIRS.

BASE =
# PUT YOUR HOME DIRECTOREY HERE
HOME = /home/hisham
FE = $(HOME)/OpenSees/SRC

BLASdir = $(HOME)/OpenSees/OTHER/BLAS
CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS
LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK
ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK
UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK
METISdir = $(HOME)/OpenSees/OTHER/METIS
SRCdir = $(HOME)/OpenSees/SRC
SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_3.0/SRC
SUPERLU_DISTdir = $(HOME)/OpenSees/OTHER/SuperLU_DIST_2.0/SRC

DIRS = $(BLASdir) \
$(CBLASdir) \
$(SUPERLUdir) \
$(SUPERLU_DISTdir) \
$(LAPACKdir) \
$(ARPACKdir) \
$(UMFPACKdir) \
$(METISdir) \
$(SRCdir)

DISTRIBUTED_SUPERLU_LIBRARY = $(HOME)/lib/libDistributedSuperLU.a

ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)

DIRS = $(BLASdir) \
$(CBLASdir) \
$(SUPERLUdir) \
$(LAPACKdir) \
$(ARPACKdir) \
$(UMFPACKdir) \
$(METISdir) \
$(SRCdir)

DISTRIBUTED_SUPERLU_LIBRARY =
endif


# %-------------------------------------------------------%
# | SECTION 4: LIBRARIES |
# | |
# | The following section defines the libraries that will |
# | be created and/or linked with when the libraries are |
# | being created or linked with. |
# %-------------------------------------------------------%
#
# Note: if vendor supplied BLAS and LAPACK libraries leave the
# libraries blank. You have to get your own copy of the tcl/tk
# library!!
#
# Note: For libraries that will be created (any in DIRS above)
# make sure the directory exsists where you want the library to go!

FE_LIBRARY = $(HOME)/lib/libOpenSees.a
NDARRAY_LIBRARY = $(HOME)/lib/libndarray.a # BJ_UCD jeremic@ucdavis.edu
MATMOD_LIBRARY = $(HOME)/lib/libmatmod.a # BJ_UCD jeremic@ucdavis.edu
BJMISC_LIBRARY = $(HOME)/lib/libBJmisc.a # BJ_UCD jeremic@ucdavis.edu
LAPACK_LIBRARY = $(HOME)/lib/libLapack.a
BLAS_LIBRARY = $(HOME)/lib/libBlas.a
SUPERLU_LIBRARY = $(HOME)/lib/libSuperLU.a
CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a
ARPACK_LIBRARY = $(HOME)/lib/libArpack.a
UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a
METIS_LIBRARY = $(HOME)/lib/libMetis.a


TCL_LIBRARY = /usr/lib/libtcl8.5.a

GRAPHIC_LIBRARY =

#RELIABILITY_LIBRARY = $(HOME)/lib/libReliability.a
RELIABILITY_LIBRARY =

# WATCH OUT .. These libraries are removed when 'make wipe' is invoked.

WIPE_LIBS = $(FE_LIBRARY) \
$(NDARRAY_LIBRARY) \
$(MATMOD_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(ARPACK_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(METIS_LIBRARY) \
$(LAPACK_LIBRARY) \
$(BLAS_LIBRARY) \
$(CBLAS_LIBRARY) \
$(RELIABILITY_LIBRARY)

# %---------------------------------------------------------%
# | SECTION 5: COMPILERS |
# | |
# | The following macros specify compilers, linker/loaders, |
# | the archiver, and their options. You need to make sure |
# | these are correct for your system. |
# %---------------------------------------------------------%

# ###################################################
# # Compilers
# ###################################################

ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)

CC++ = icpc
CC = icc
FC = ifort

F90 = ifort
LINKER = $(CC++)

else

CC++ = /usr/bin/g++
CC = /usr/bin/gcc
FC = /usr/bin/gfortran
FORTRAN = /usr/bin/gfortran
F90 = ifort
LINKER = $(CC++)
#LINKER = /usr/local/mpi/bin/mpicxx

#CC++ = mpiCC
#CC = mpicc
#FC = mpif90

#F90 = mpif90
#FORTRAN = $(FC)

#LINKER = $(CC++)

endif

AR = ar
ARCH = ar

ARFLAGS = -q
#ARCHFLAGS = cqls
ARCHFLAGS = -v -q

RANLIB = ranlib

RANLIBFLAGS =


GRAPHIC_FLAG = -D_NOGRAPHICS
PROGRAMMING_FLAG =

ifeq ($(PROGRAMMING_MODE), PARALLEL)
PROGRAMMING_FLAG = -D_PARALLEL_PROCESSING
endif

ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS)
PROGRAMMING_FLAG = -D_PARALLEL_INTERPRETERS
endif

#RELIABILITY_FLAG = -D_RELIABILITY
RELIABILITY_FLAG =

#DEBUG_FLAG = -D_G3DEBUG
DEBUG_FLAG =

#MUMPS_FLAG =
PETSC_FLAG =

OPT_FLAG = -O2

COMP_FLAG =

C++FLAGS = -D_LINUX -D_UNIX $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(OPT_FLAG) $(COMP_FLAG)\
$(PROGRAMMING_FLAG) $(PETSC_FLAG) $(MUMPS_FLAG) \
-D_TCL85 -D_BLAS -D_NETINET_PROBLEMS_INTEL


CFLAGS = $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG)$(PROGRAMMING_FLAG) $(OPT_FLAG) $(COMP_FLAG) -D_TCL85 -D_BLAS
FFLAGS = -qextname $(OPT_FLAG) $(COMP_FLAG)
LINKFLAGS =


# Misc
MAKE = make
CD = cd
ECHO = echo
RM = rm
RMFLAGS = -f
SHELL = /bin/sh

# %---------------------------------------------------------%
# | SECTION 6: COMPILATION |
# | |
# | The following macros specify the macros used in |
# | to compile the source code into object code. |
# %---------------------------------------------------------%

.SUFFIXES:
.SUFFIXES: .C .c .f .f90 .cpp .o .cpp

#
# %------------------%
# | Default command. |
# %------------------%
#
.DEFAULT:
@$(ECHO) "Unknown target $@, try: make help"
#
# %-----------------------------------------------%
# | Command to build .o files from source files. |
# %-----------------------------------------------%
#


.cpp.o:
@$(ECHO) Making $@ from $< $@ with $(CC++) $(C++FLAGS) $(INCLUDES) -c $<
@$(CC++) $(C++FLAGS) $(INCLUDES) -c $<


.C.o:
@$(ECHO) Making $@ from $<
$(CC++) $(C++FLAGS) $(INCLUDES) -c $<

.c.o:
@$(ECHO) Making $@ from $<
$(CC) $(CFLAGS) -c $<

.f.o:
@$(ECHO) Making $@ from $<
$(FC) $(FFLAGS) -c $<

.f77.o:
@$(ECHO) Making $@ from $<
$(FC) $(FFLAGS) -c $<

.f90.o:
@$(ECHO) Making $@ from $<
$(FC90) $(FFLAGS) -c $<

# %---------------------------------------------------------%
# | SECTION 7: OTHER LIBRARIES |
# | |
# | The following macros specify other libraries that must |
# | be linked with when creating executables. These are |
# | platform specific and typically order does matter!! |
# %---------------------------------------------------------%
MACHINE_LINKLIBS = -L$(BASE)/lib \
-L$(HOME)/lib


# PETSC
HAVEPETSC = NO


ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
HAVEPETSC = NO
endif

ifeq ($(HAVEPETSC), YES)

PETSC = YES
PETSC_FLAG = -D_PETSC
PETSC_DIR = /usr
PETSC_ARCH = linux-gnu
BOPT = O

PETSC_INC = -I$(PETSC_DIR)/include/petsc -I$(PETSC_DIR)/include/petsc/finclude -D_PETSC
PETSC_LIB = -L$(PETSC_DIR)/lib \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSOE.o \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSolver.o \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSparseSeqSolver.o \
-lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc \
-L/usr/X11/lib -lX11 -lGL

endif

MPICC = mpicc
MPIINC = -I/usr/include/openmpi
MPILIB = -L/usr/include/openmpi -lmpich

HAVEMUMPS = YES
MUMPS_INCLUDE =
MUMPS_LIB =

ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
HAVEMUMPS = NO
endif

ifeq ($(HAVEMUMPS), YES)

MUMPS = YES
MUMPS_FLAG = -D_MUMPS -D_OPENMPI
#MUMPS_DIR = /gpfs/fmk/MUMPS_4.6.4
MUMPS_DIR = /usr



BLACSdir = /usr

#BLACSDBGLVL = 0
BLACSFINIT = $(BLACSdir)/lib/libblacsF77init-openmpi.a
BLACSCINIT = $(BLACSdir)/lib/libblacsCinit-openmpi.a
BLACSLIB = $(BLACSdir)/lib/libblacs-openmpi.a
CBLACSLIB = $(BLACSLIB) $(BLACSCINIT)
FBLACSLIB = $(BLACSLIB) $(BLACSFINIT)

BLACSlib = $(CBLACSLIB)

SCALAPdir = /usr
SCALAPlib = $(SCALAPdir)/lib/libscalapack-openmpi.a

SCALAP = $(BLACSlib) $(SCALAPlib) $(BLACSlib)

MUMPS_LIB = -L$(MUMPS_DIR)/lib \
-ldmumps$(PLAT) \
-lpord$(PLAT) \
$(SCALAP) \
$(FE)/system_of_eqn/linearSOE/mumps/MumpsSOE.o \
$(FE)/system_of_eqn/linearSOE/mumps/MumpsSolver.o \
$(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSOE.o \
$(FE)/system_of_eqn/linearSOE/mumps/MumpsParallelSolver.o

MUMPS_INCLUDE = -I$(MUMPS_DIR)/include

endif

PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o \
$(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.o \
$(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \
$(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o


ifeq ($(PROGRAMMING_MODE), SEQUENTIAL)
PARALLEL_LIB =
endif

HPM_LIB = -L/usr -l/usr/libhpmud.so \
-lhpmud -lhpm_r -lpmapi -lm

MACHINE_NUMERICAL_LIBS = -lm \
$(ARPACK_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(GRAPHIC_LIBRARY)\
$(RELIABILITY_LIBRARY) \
$(DISTRIBUTED_SUPERLU_LIBRARY) \
$(METIS_LIBRARY) $(PARALLEL_LIB) $(PETSC_LIB) $(MUMPS_LIB)


MACHINE_SPECIFIC_LIBS = -L${MKL_HOME}/lib/64 -lmkl_lapack -lmkl_ipf -lguide -lpthread $(MPILIB)\

#/usr/local/apps/intel/compiler8/lib/libifcoremt.a

# %---------------------------------------------------------%
# | SECTION 8: INCLUDE FILES |
# | |
# | The following macros specify include files needed for |
# | compilation. |
# %---------------------------------------------------------%

MACHINE_INCLUDES = $(MPIINC) -I/usr/local/BerkeleyDB.4.0/include \
-I/usr/include/mysql \
-I$(HOME)/include \
-I$(UMFPACKdir) \
-I$(SUPERLUdir) \
-I$(SUPERLU_DISTdir) \
$(PETSC_INC) $(MUMPS_INCLUDE)


# this file contains all the OpenSees/SRC includes
include $(FE)/Makefile.incl

#TCL_INCLUDES = -I/home/fmk/tcl8.3.3/generic
TCL_INCLUDES = -I/usr/include/tcl8.5 -I/usr/include/


INCLUDES = $(MACHINE_INCLUDES) $(TCL_INCLUDES) $(FE_INCLUDES)
Hisham El Safti
hsafti
Posts: 68
Joined: Thu Apr 22, 2010 5:38 am
Location: Braunschweig

Re: SP vs MP?, Trouble compiling SP

Post by hsafti »

I need an answer as soon as possible ........ :(
Hisham El Safti
Post Reply