OpenSees Parallel linux

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

Moderator: selimgunay

jamesgu
Posts: 9
Joined: Sun Jan 20, 2013 4:33 pm

Re: OpenSees Parallel linux

Post by jamesgu » Sat May 24, 2014 3:47 pm

My administrator helped to make it work. Thank you, fmk!

jamesgu
Posts: 9
Joined: Sun Jan 20, 2013 4:33 pm

Re: OpenSees Parallel linux

Post by jamesgu » Tue May 27, 2014 9:52 am

The administrator installed it following the Guideline for 2.3.2.2 version(svn code – 4985). My test runs showed up to 5% difference.

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: OpenSees Parallel linux

Post by fmk » Tue Jun 03, 2014 2:14 pm

there will be some difference due to machine roundoff and the fact that the solvers are using different ordering schemes to solve the equations and thus some more problems with round-off and ill-conditioing if present.

gourik
Posts: 69
Joined: Wed Dec 31, 2008 10:07 pm
Location: C-DAC,Pune

Re: OpenSees Parallel linux

Post by gourik » Thu Apr 16, 2015 4:25 am

Hello fmk,

I got OpenSeesMP compiled sucessfully. But when I am using same Makefile only changing Programming Mode to Parrallel for OpenSeesSP I got following error

/home/gourik/OpenSees_PAR/OpenSees_SP/OpenSees/SRC/tcl/commands.o: In function `specifySOE(void*, Tcl_Interp*, int, char const**)':
/home/gourik/OpenSees_PAR/OpenSees_SP/OpenSees/SRC/tcl/commands.cpp:2934: undefined reference to `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
/home/gourik/OpenSees_PAR/OpenSees_SP/OpenSees/SRC/tcl/commands.cpp:2911: undefined reference to `DistributedSuperLU::DistributedSuperLU(int, int)'
/home/gourik/OpenSees_PAR/OpenSees_SP/lib/libOpenSees.a(FEM_ObjectBrokerAllClasses.o): In function `FEM_ObjectBrokerAllClasses::getNewLinearSOE(int)':
/home/gourik/OpenSees_PAR/OpenSees_SP/OpenSees/SRC/actor/objectBroker/FEM_ObjectBrokerAllClasses.cpp:2014: undefined reference to `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()'
collect2: ld returned 1 exit status

Please help me to get through this issue.

Regards,
Gouri
Thanks And Regards,

Gouri

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: OpenSees Parallel linux

Post by fmk » Mon Apr 20, 2015 7:37 am

make sure it is defined in PARALLEL_LIB in the Makefile.def

gourik
Posts: 69
Joined: Wed Dec 31, 2008 10:07 pm
Location: C-DAC,Pune

Re: OpenSees Parallel linux

Post by gourik » Mon Apr 27, 2015 10:18 pm

Resolved this error by modifiying makefile in sparseGen directory. Somehow mentioned *.o files were not generated. compilor was not going inside the loop of
ifeq ($(PROGRAMMING_MODE), PARALLEL) , so required DistributedSuperLU.o \ DistributedSparseGenColLinSOE.o \ DistributedSparseGenRowLinSOE.o \
files were not getiing generated.
Removed space after line ifeq ($(PROGRAMMING_MODE), PARALLEL) . It worked.

Thanks fmk for your help. Now both parallel versions available with me.

Do you have any guidelines for OpenSeesGPU on linux.
Thanks And Regards,

Gouri

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: OpenSees Parallel linux

Post by fmk » Tue Apr 28, 2015 8:54 am

not really. i obtained the Cula sparse library from NVIDIA, compiled and included the CULA solvers (system/linearSOE/sparseGEN) into the OpenSees mac version and
ran it. so no speedup (but then i only had the GPU that came with my mac) . i tried a test run on a machine with Tesla GPU and saw speedup .. just thought the CPU's gave better speedup and so left it.

if you do and find different results let us know as i did not have a lot of time to spend looking at different model types.

akhilesh
Posts: 1
Joined: Sun Aug 23, 2015 11:09 pm
Location: Pune University

Re: OpenSees Parallel linux

Post by akhilesh » Wed Jan 20, 2016 1:19 am

Hello,
I am working on Opensees parallel compilation. Following is the error I am getting at compile time which I am unable to resolve.I am using Opensees version 2.4.6.
The error I am getting is....
DistributedSuperLU.cpp -o DistributedSuperLU.o
DistributedSuperLU.cpp:40:27: error: superlu_ddefs.h: No such file or directory
DistributedSuperLU.cpp:44: error: ‘superlu_options_t’ does not name a type
DistributedSuperLU.cpp:45: error: ‘SuperLUStat_t’ does not name a type
DistributedSuperLU.cpp:46: error: ‘SuperMatrix’ does not name a type
DistributedSuperLU.cpp:47: error: ‘ScalePermstruct_t’ does not name a type
DistributedSuperLU.cpp:48: error: ‘LUstruct_t’ does not name a type
DistributedSuperLU.cpp:49: error: ‘gridinfo_t’ does not name a type
DistributedSuperLU.cpp:50: error: ‘MPI_Comm’ does not name a type
DistributedSuperLU.cpp: In destructor ‘virtual DistributedSuperLU::~DistributedSuperLU()’:
DistributedSuperLU.cpp:74: error: ‘ScalePermstruct’ was not declared in this scope
DistributedSuperLU.cpp:74: error: ‘ScalePermstructFree’ was not declared in this scope
DistributedSuperLU.cpp:75: error: ‘LUstruct’ was not declared in this scope
DistributedSuperLU.cpp:75: error: ‘LUstructFree’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h: In member function ‘virtual int DistributedSuperLU::solve()’:
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:91: error: ‘int SparseGenColLinSOE::size’ is protected
DistributedSuperLU.cpp:95: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:96: error: ‘Vector* SparseGenColLinSOE::vectB’ is protected
DistributedSuperLU.cpp:101: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:93: error: ‘double* SparseGenColLinSOE::A’ is protected
DistributedSuperLU.cpp:102: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:92: error: ‘int SparseGenColLinSOE::nnz’ is protected
DistributedSuperLU.cpp:102: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:93: error: ‘double* SparseGenColLinSOE::A’ is protected
DistributedSuperLU.cpp:111: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:92: error: ‘int SparseGenColLinSOE::nnz’ is protected
DistributedSuperLU.cpp:111: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:96: error: ‘Vector* SparseGenColLinSOE::vectB’ is protected
DistributedSuperLU.cpp:116: error: within this context
DistributedSuperLU.cpp:123: error: ‘grid’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:91: error: ‘int SparseGenColLinSOE::size’ is protected
DistributedSuperLU.cpp:126: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:92: error: ‘int SparseGenColLinSOE::nnz’ is protected
DistributedSuperLU.cpp:127: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:93: error: ‘double* SparseGenColLinSOE::X’ is protected
DistributedSuperLU.cpp:133: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:93: error: ‘double* SparseGenColLinSOE::B’ is protected
DistributedSuperLU.cpp:134: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:93: error: ‘double* SparseGenColLinSOE::X’ is protected
DistributedSuperLU.cpp:138: error: within this context
DistributedSuperLU.cpp:146: error: ‘options’ was not declared in this scope
DistributedSuperLU.cpp:146: error: ‘FACTORED’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:98: error: ‘bool SparseGenColLinSOE::factored’ is protected
DistributedSuperLU.cpp:146: error: within this context
DistributedSuperLU.cpp:147: error: ‘SamePattern’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:94: error: ‘int* SparseGenColLinSOE::rowA’ is protected
DistributedSuperLU.cpp:148: error: within this context
DistributedSuperLU.cpp:155: error: ‘options’ was not declared in this scope
DistributedSuperLU.cpp:155: error: ‘A’ was not declared in this scope
DistributedSuperLU.cpp:155: error: ‘ScalePermstruct’ was not declared in this scope
DistributedSuperLU.cpp:156: error: ‘LUstruct’ was not declared in this scope
DistributedSuperLU.cpp:156: error: ‘stat’ was not declared in this scope
DistributedSuperLU.cpp:156: error: ‘pdgssvx_ABglobal’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:98: error: ‘bool SparseGenColLinSOE::factored’ is protected
DistributedSuperLU.cpp:158: error: within this context
DistributedSuperLU.cpp:159: error: ‘FACTORED’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:98: error: ‘bool SparseGenColLinSOE::factored’ is protected
DistributedSuperLU.cpp:160: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h: In member function ‘virtual int DistributedSuperLU::setSize()’:
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:91: error: ‘int SparseGenColLinSOE::size’ is protected
DistributedSuperLU.cpp:187: error: within this context
DistributedSuperLU.cpp:194: error: ‘MPI_Comm’ was not declared in this scope
DistributedSuperLU.cpp:194: error: expected ‘;’ before ‘comm_world’
DistributedSuperLU.cpp:195: error: ‘MPI_Group’ was not declared in this scope
DistributedSuperLU.cpp:195: error: expected ‘;’ before ‘group_world’
DistributedSuperLU.cpp:197: error: ‘comm_world’ was not declared in this scope
DistributedSuperLU.cpp:197: error: ‘MPI_COMM_WORLD’ was not declared in this scope
DistributedSuperLU.cpp:198: error: ‘group_world’ was not declared in this scope
DistributedSuperLU.cpp:198: error: ‘MPI_Comm_group’ was not declared in this scope
DistributedSuperLU.cpp:201: error: ‘comm_SuperLU’ was not declared in this scope
DistributedSuperLU.cpp:201: error: ‘MPI_Comm_create’ was not declared in this scope
DistributedSuperLU.cpp:203: error: ‘grid’ was not declared in this scope
DistributedSuperLU.cpp:203: error: ‘superlu_gridinit’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:91: error: ‘int SparseGenColLinSOE::size’ is protected
DistributedSuperLU.cpp:207: error: within this context
DistributedSuperLU.cpp:207: error: ‘grid’ was not declared in this scope
DistributedSuperLU.cpp:207: error: ‘LUstruct’ was not declared in this scope
DistributedSuperLU.cpp:207: error: ‘Destroy_LU’ was not declared in this scope
DistributedSuperLU.cpp:208: error: ‘ScalePermstruct’ was not declared in this scope
DistributedSuperLU.cpp:208: error: ‘ScalePermstructFree’ was not declared in this scope
DistributedSuperLU.cpp:209: error: ‘LUstructFree’ was not declared in this scope
DistributedSuperLU.cpp:215: error: ‘stat’ was not declared in this scope
DistributedSuperLU.cpp:215: error: ‘PStatInit’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:92: error: ‘int SparseGenColLinSOE::nnz’ is protected
DistributedSuperLU.cpp:224: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:94: error: ‘int* SparseGenColLinSOE::rowA’ is protected
DistributedSuperLU.cpp:226: error: within this context
DistributedSuperLU.cpp:228: error: ‘A’ was not declared in this scope
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:93: error: ‘double* SparseGenColLinSOE::A’ is protected
DistributedSuperLU.cpp:228: error: within this context
/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.h:94: error: ‘int* SparseGenColLinSOE::colStartA’ is protected
DistributedSuperLU.cpp:229: error: within this context
DistributedSuperLU.cpp:230: error: ‘SLU_NC’ was not declared in this scope
DistributedSuperLU.cpp:230: error: ‘SLU_D’ was not declared in this scope
DistributedSuperLU.cpp:230: error: ‘SLU_GE’ was not declared in this scope
DistributedSuperLU.cpp:230: error: ‘dCreate_CompCol_Matrix_dist’ was not declared in this scope
DistributedSuperLU.cpp:236: error: ‘ScalePermstruct’ was not declared in this scope
DistributedSuperLU.cpp:236: error: ‘ScalePermstructInit’ was not declared in this scope
DistributedSuperLU.cpp:237: error: ‘LUstruct’ was not declared in this scope
DistributedSuperLU.cpp:237: error: ‘LUstructInit’ was not declared in this scope
DistributedSuperLU.cpp:244: error: ‘options’ was not declared in this scope
DistributedSuperLU.cpp:244: error: ‘set_default_options_dist’ was not declared in this scope
DistributedSuperLU.cpp:245: error: ‘NO’ was not declared in this scope
make[4]: *** [DistributedSuperLU.o] Error 1
make[4]: Leaving directory `/home/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/OpenSees/SRC/system_of_eqn/linearSOE'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/OpenSees/SRC/system_of_eqn'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/OpenSees/SRC'
make[1]: Entering directory `/home/OpenSees/OTHER/METIS'
Makefile:5: warning: overriding commands for target `.c.o'
../../Makefile.def:222: warning: ignoring old commands for target `.c.o'
make[1]: Leaving directory `/home/OpenSees/OTHER/METIS'
LIBRARIES BUILT ... NOW LINKING OpenSees PROGRAM
make[1]: Entering directory `/home/OpenSees/SRC/tcl'
make[1]: Nothing to be done for `tcl'.
make[1]: Leaving directory `/home/OpenSees/SRC/tcl'
make[1]: Entering directory `/home/OpenSees/SRC/modelbuilder/tcl'
Makefile:30: warning: overriding commands for target `tcl'
Makefile:13: warning: ignoring old commands for target `tcl'
make[2]: Entering directory `/home/OpenSees/SRC/tcl'
make[2]: Nothing to be done for `tcl'.
make[2]: Leaving directory `/home/OpenSees/SRC/tcl'
echo /usr/bin/g++ -rdynamic -Wl /home/OpenSees/SRC/tcl/tclMain.o /home/OpenSees/SRC/tcl/mpiMain.o /home/OpenSees/SRC/tcl/commands.o /home/OpenSees/SRC/modelbuilder/tcl/myCommands.o /home/OpenSees/SRC/actor/channel/MPI_Channel.o /home/OpenSees/SRC/actor/machineBroker/MPI_MachineBroker.o /home/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/MPIDiagonalSOE.o /home/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/MPIDiagonalSolver.o /home/OpenSees/SRC/domain/subdomain/ActorSubdomain.o /home/OpenSees/SRC/domain/subdomain/ShadowSubdomain.o /home/OpenSees/SRC/tcl/TclFeViewer.o /home/OpenSees/SRC/tcl/TclVideoPlayer.o \
/home/lib/libOpenSees.a -L/usr/local/lib -L/home/lib \
-lm /home/lib/libArpack.a /home/lib/libSuperLU.a /home/lib/libUmfpack.a /home/lib/libLapack.a /home/lib/libBlas.a /home/lib/libCBlas.a /home/lib/libCBlas.a /home/lib/libAMD.a -ldl -lgfortran /home/Parallel/Lib/tcl8.5.18/unix/libtcl8.5.so /home/Parallel/Lib/tk8.5.18/unix/libtk8.5.so \
-o /home/bin/OpenSees
/usr/bin/g++ -rdynamic -Wl /home/OpenSees/SRC/tcl/tclMain.o /home
/OpenSees/SRC/tcl/mpiMain.o /home/OpenSees/SRC/tcl/commands.o /home/OpenSees/SRC/modelbuilder/tcl/myCommands.o /home/OpenSees/SRC/actor/channel/MPI_Channel.o /home/OpenSees/SRC/actor/machineBroker/MPI_MachineBroker.o /home/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/MPIDiagonalSOE.o /home/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/MPIDiagonalSolver.o /home/OpenSees/SRC/domain/subdomain/ActorSubdomain.o /home/OpenSees/SRC/domain/subdomain/ShadowSubdomain.o /home/OpenSees/SRC/tcl/TclFeViewer.o /home/OpenSees/SRC/tcl/TclVideoPlayer.o /home/lib/libOpenSees.a -L/usr/local/lib -L/home/lib -lm /home/lib/libArpack.a /home/lib/libSuperLU.a /home/lib/libUmfpack.a /home/lib/libLapack.a /home/lib/libBlas.a /home/lib/libCBlas.a /home/lib/libCBlas.a /home/lib/libAMD.a -ldl -lgfortran /home/Parallel/Lib/tcl8.5.18/unix/libtcl8.5.so /home/Parallel/Lib/tk8.5.18/unix/libtk8.5.so -o /home/bin/OpenSees
g++: /home/OpenSees/SRC/actor/channel/MPI_Channel.o: No such file or directory
g++: /home/OpenSees/SRC/actor/machineBroker/MPI_MachineBroker.o: No such file or directory
g++: /home/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/MPIDiagonalSOE.o: No such file or directory
g++: /home/OpenSees/SRC/system_of_eqn/linearSOE/diagonal/MPIDiagonalSolver.o: No such file or directory
g++: /home/lib/libOpenSees.a: No such file or directory
make[1]: *** [tcl] Error 1
make[1]: Leaving directory `/home/OpenSees/SRC/modelbuilder/tcl'
make: *** [all] Error 2


###################################################################################################################################
Following is my make.def file

############################################################################
#
# Program: OpenSees
#
# Purpose: A Top-level Makefile to create the libraries needed
# to use the OpenSees framework. Works on Linux version 6.1
# and below.
#
# Written: fmk
# Created: 10/99
#
# Send bug reports, comments or suggestions to fmckenna@ce.berkeley.edu
#
############################################################################

## ssh to machine from your own:
# chmod 'go+rwx' XXX.pem
# (right click running instance, click connect, click connect with standalone ssh client to get command:
# ssh -i XXX.pem root@YYY.amazonaws.com

# Following are commands to build OpenSees
# on EC2 FEDORA 64 bit machine (ami-7d0c6314) once logged in

# sudo yum install gcc.x86_64
# sudo yum install gcc-c++.x86_64
# sudo yum install gcc-gfortran.x86_64
# sudo yum install tcl.x86_64
# sudo yum install tcl-devel.x86_64
# sudo yum install svn
# sudo yum install emacs
# mkdir bin
# mkdir lib
# svn co svn://opensees.berkeley.edu:/usr/local/svn/OpenSees/trunk OpenSees
# cd OpenSees
# cp ./MAKES/Makefile.def.EC2-REDHAT-ENTERPRISE ./Makefile.def
# make

# END of commands to build OpenSees.

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

OpenSees_PROGRAM = $(HOME)/bin/OpenSees

OPERATING_SYSTEM = LINUX
GRAPHICS = NONE
GRAPHIC_FLAG = -D_NOGRAPHICS
PROGRAMMING_MODE = PARALLEL
DEBUG_MODE = NO_DEBUG
RELIABILITY = NO_RELIABILITY


# %---------------------------------%
# | SECTION 2: 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 = /usr/local
HOME = /home/Opensees
FE = $(HOME)/OpenSees/SRC

AMDdir = $(HOME)/OpenSees/OTHER/AMD
BLASdir = $(HOME)/OpenSees/OTHER/BLAS
CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS
LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK
SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_4.1/SRC
ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK
UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK
METISdir = $(HOME)/OpenSees/OTHER/METIS
CSPARSEdir = $(HOME)/OpenSees/OTHER/CSPARSE
SRCdir = $(HOME)/OpenSees/SRC

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

# %-------------------------------------------------------%
# | SECTION 3: 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
MATMOD_LIBRARY = $(HOME)/lib/libmatmod.a
BJMISC_LIBRARY = $(HOME)/lib/libBJmisc.a
LAPACK_LIBRARY = $(HOME)/lib/libLapack.a
BLAS_LIBRARY = $(HOME)/lib/libBlas.a
SUPERLU_LIBRARY = $(HOME)/lib/libSuperLU.a
CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a
CSPARSE_LIBRARY = $(HOME)/lib/libCBlas.a
ARPACK_LIBRARY = $(HOME)/lib/libArpack.a
AMD_LIBRARY = $(HOME)/lib/libAMD.a
UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a
METIS_LIBRARY = $(HOME)/lib/libMetis.a
TCL_LIBRARY = /home/Parallel/Lib/tcl8.5.18/unix/libtcl8.5.so /home/Parallel/Lib/tk8.5.18/unix/libtk8.5.so
BLITZ_LIBRARY = $(HOME)/blitz/lib/libblitz.a
GRAPHIC_LIBRARY =

# WATCH OUT .. These libraries are removed when 'make wipe' is invoked.
WIPE_LIBS = $(FE_LIBRARY) \
$(LAPACK_LIBRARY) \
$(BLAS_LIBRARY) \
$(CBLAS_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(ARPACK_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(METIS_LIBRARY)

# %---------------------------------------------------------%
# | SECTION 4: 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
CC++ = /usr/bin/g++
CC = /usr/bin/gcc
FC = /usr/bin/gfortran

AR = ar
ARFLAGS = cqls
RANLIB = ranlib
RANLIBFLAGS =

# Compiler Flags
#
# NOTES:
# C++ FLAGS TAKE need _UNIX or _WIN32 for preprocessor dircetives
# - the _WIN32 for the Windows95/98 or NT operating system.
# C FLAGS used -DUSE_VENDOR_BLAS (needed in SuperLU) if UNIX in C++ FLAGS
#

# modified as optimizaton currently causing problems with Steeln01 code
ifeq ($(DEBUG_MODE), DEBUG)

C++FLAGS = -Wall -D_LINUX -D_UNIX -D_TCL85 \
$(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) \
-g -pg


CFLAGS = -Wall -pg $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG)
FFLAGS = -Wall

# Linker
LINKER = $(CC++)
LINKFLAGS = -g -pg

else

C++FLAGS = -Wall -D_LINUX -D_UNIX -D_TCL85 \
$(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) \
$(PROGRAMMING_FLAG) -O3 -ffloat-store
CFLAGS = -Wall -O2
FFLAGS = -Wall -O

# Linker
LINKER = $(CC++)
LINKFLAGS = -rdynamic -Wl

endif


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

# %---------------------------------------------------------%
# | SECTION 5: 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 .f files. |
# %-------------------------------------------%
#

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

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

# %---------------------------------------------------------%
# | SECTION 6: 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

MACHINE_NUMERICAL_LIBS = -lm \
$(ARPACK_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(LAPACK_LIBRARY) $(BLAS_LIBRARY) $(CBLAS_LIBRARY) $(CSPARSE_LIBRARY) \
$(AMD_LIBRARY) $(GRAPHIC_LIBRARY)\
-ldl -lgfortran

MACHINE_SPECIFIC_LIBS =


# %---------------------------------------------------------%
# | SECTION 7: INCLUDE FILES |
# | |
# | The following macros specify include files needed for |
# | compilation. |
# %---------------------------------------------------------%
MACHINE_INCLUDES = -I/usr/include \
-I$(BASE)/include \
-I/usr/include/cxx \
-I$(HOME)/include -I$(HOME)/blitz

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

TCL_INCLUDES = -I/home/OpenSees/usr/local/include

INCLUDES = $(TCL_INCLUDES) $(FE_INCLUDES) $(MACHINE_INCLUDES)

###################################################################################################################################

Tcl version I am using is 8.5.18
Please help as early as possible

Post Reply