OpenSees Parallel linux
Moderator: selimgunay
Re: OpenSees Parallel linux
My administrator helped to make it work. Thank you, fmk!
Re: OpenSees Parallel linux
The administrator installed it following the Guideline for 2.3.2.2 version(svn code – 4985). My test runs showed up to 5% difference.
Re: OpenSees Parallel linux
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.
Re: OpenSees Parallel linux
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 undefined reference to `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
/home/gourik/OpenSees_PAR/OpenSees_SP/OpenSees/SRC/tcl/commands.cpp 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 undefined reference to `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()'
collect2: ld returned 1 exit status
Please help me to get through this issue.
Regards,
Gouri
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 undefined reference to `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
/home/gourik/OpenSees_PAR/OpenSees_SP/OpenSees/SRC/tcl/commands.cpp 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 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
Gouri
Re: OpenSees Parallel linux
make sure it is defined in PARALLEL_LIB in the Makefile.def
Re: OpenSees Parallel linux
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.
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
Gouri
Re: OpenSees Parallel linux
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.
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.
Re: OpenSees Parallel linux
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
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