Problem while running Opensees on AIX (UNIX OS)
Moderators: silvia, selimgunay, Moderators
Problem while running Opensees on AIX (UNIX OS)
Dear all
I have installed parallel OpenSees code (compiling all necessary libraries and all) on our Unix OS.... ver - AIX 5.0...... and in the Bin directory got the executable.
Whenever I run any example and exit from the OpenSees executable I am getting an error message as:
exit
Process Terminating
ERROR: 0032-184 MPI was not finalized in routine unknown, task 0
I have given path for MPI..........as:
CC++ = mpCC_r
CC = mpcc_r
FC = mpxlf_r
F90 = mpxlf90_r
FORTRAN = $(FC)
LINKER = $(CC++)
in the Makefile.def
Couid anybody tell me exactly where i m wrong.... and what is the correction required
Thanking You
Regards
Pallavi
I have installed parallel OpenSees code (compiling all necessary libraries and all) on our Unix OS.... ver - AIX 5.0...... and in the Bin directory got the executable.
Whenever I run any example and exit from the OpenSees executable I am getting an error message as:
exit
Process Terminating
ERROR: 0032-184 MPI was not finalized in routine unknown, task 0
I have given path for MPI..........as:
CC++ = mpCC_r
CC = mpcc_r
FC = mpxlf_r
F90 = mpxlf90_r
FORTRAN = $(FC)
LINKER = $(CC++)
in the Makefile.def
Couid anybody tell me exactly where i m wrong.... and what is the correction required
Thanking You
Regards
Pallavi
fmk wrote:are you running a parallel version using mpirun OpenSees -np blah or are you just running a sequential vertsion using OpenSees on the command line.
Hello fmk......
My Makefile.def is as follows
############################################################################
#
# Program: OpenSees
#
# Purpose: A Top-level Makefile to create the libraries needed
# to use the OpenSees framework.
#
# version created for SDSC datastar sequential
#
# Written: fmk
# Created: 01/2003
#
#
############################################################################
# %---------------------------------%
# | 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
OpenSees_PROGRAM_MPI = $(HOME)/bin/OpenSeesMPI
# %---------------------------------%
# | SECTION 2: MAKEFILE CONSTANTS |
# %---------------------------------%
#
# Specify the constants the are used as control structure variables in the Makefiles.
OPERATING_SYSTEM = UNIX
#GRAPHICS = UsingOpenGL
PROGRAMMING_MODE = PARALLEL
DEBUG_MODE = NO_DEBUG
RELIABILITY = NO_RELIABILITY
# %---------------------------------%
# | 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 =
HOME = /home/csm/pallavig
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) \
$(LAPACKdir) \
$(ARPACKdir) \
$(UMFPACKdir) \
$(METISdir) \
$(SRCdir)
# %-------------------------------------------------------%
# | 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
DISTRIBUTED_SUPERLU_LIBRARY = $(HOME)/lib/libDistributedSuperLU.a
# By us TCL_LIBRARY = /home/csm/pallavig/usr/local/tcl/lib/libtcl8.4.so \
# /home/csm/pallavig/usr/local/tcl/lib/libtk8.4.so
#TCL_LIBRARY = /usr/local/lib/libtcl8.4.a \
# /usr/local/lib/libtk8.4.a
TCL_LIBRARY = /home/csm/pallavig/usr/local/tcl/lib/libtcl8.4.so \
/home/csm/pallavig/usr/local/tcl/lib/libtk8.4.so
GRAPHIC_LIBRARY = -L/home/csm/pallavig/pre_com_mesa/usr/lib -lGL -lGLU -I/home/csm/pallavig/pre_com_mesa/usr/include
#GRAPHIC_LIBRARY = -L/usr/include/X11/GLw
#GRAPHIC_LIBRARY = -L/usr/lib -lGL -lGLU
#GRAPHIC_LIBRARY = -L/usr/include/ -lGL -lGLU \
# /usr/X11R6/include/X11
#GRAPHIC_LIBRARY = -L/usr/lpp/OpenGL/lib -lGL -lGLU
#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
# ###################################################
#CC++ = xlC_r
#CC = xlc_r
#FC = xlf_r
#F90 = xlf90_r
#LINKER = xlC_r
# By us /usr/bin for CC++ CC FC F90
#CC++ = /usr/bin/mpCC_r
#CC = /usr/bin/mpcc_r
#FC = /usr/bin/mpxlf_r
#F90 = /usr/bin/mpxlf90_r
#FORTRAN = $(FC)
CC++ = mpCC_r
CC = mpcc_r
FC = mpxlf_r
F90 = mpxlf90_r
FORTRAN = $(FC)
LINKER = $(CC++)
#AR = ar -X64
AR = ar -X32
ARCH = ar
ARFLAGS = -v -q
#ARCHFLAGS = cqls
ARCHFLAGS = -v -q
RANLIB = ranlib
#following by Pal 19apr ranlibflags
#RANLIBFLAGS = ranlibflags
RANLIBFLAGS =
#GRAPHIC_FLAG = -D_NOGRAPHICS -D_GLX
#GRAPHIC_FLAG = -D_NOGRAPHICS
GRAPHIC_FLAG = -D_NOGRAPHICS
PROGRAMMING_FLAG =
#RELIABILITY_FLAG = -D_RELIABILITY
RELIABILITY_FLAG =
#DEBUG_FLAG = -D_G3DEBUG
DEBUG_FLAG =
COMP_FLAG = -qnoipa
C++FLAGS = -O2 -q32 -qstrict -qarch=pwr4 -qtune=pwr4 -D_LINUX -D_UNIX $(GRAPHIC_FLAG) -D_KAI \
$(PROGRAMMING_FLAG) -D_TCL84 -D_PARALLEL_PROCESSING -D_PETSC
CFLAGS = -O2 -q32 -qstrict -qarch=pwr4 -qtune=pwr4 $(GRAPHIC_FLAG) $(PROGRAMMING_FLAG) -D_KAI \
-D_TCL84 -D_PARALLEL_PROCESSING -D_PETSC
FFLAGS = -O2 -q32 -qstrict -qarch=pwr4 -qtune=pwr4 -qextname
LINKFLAGS = -O2 -q32 -qstrict -qarch=pwr4 -qtune=pwr4 -bbigtoc -bnoquiet
# Misc
MAKE = /usr/bin/gmake
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 $<
# Rajan .f77.o:
# Rajan @$(ECHO) Making $@ from $<
# Rajan $(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!! |
# %---------------------------------------------------------%
# Rajan see other
MACHINE_LINKLIBS = -L$(BASE)/lib \
-L$(HOME)/lib
PETSC_DIR = /home/csm/pallavig/guru/petsc-2.2.1
PETSC_ARCH = aix5.1.0.0
BOPT = O
#-Wl,-rpath,$(PETSC_DIR)/lib/libg/$(PETSC_ARCH) \
#-Wl,-rpath,$(PETSC_DIR)/lib/$(PETSC_ARCH) \
PETSC_LIB = -L$(PETSC_DIR)/lib/libg/$(PETSC_ARCH) \
-lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSOE.o \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSolver.o \
$(FE)/system_of_eqn/linearSOE/sparseGEN/SparseGenRowLinSOE.o \
$(FE)/system_of_eqn/linearSOE/sparseGEN/SparseGenRowLinSolver.o \
$(FE)/system_of_eqn/linearSOE/petsc/PetscSparseSeqSolver.o
PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSOE.o \
$(FE)/system_of_eqn/linearSOE/diagonal/DistributedDiagonalSolver.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
HPM_LIB = -L/usr/local/hpm_2_4_2/pwr4/lib/ \
-lhpm_r -lhpm_r -lm
MACHINE_NUMERICAL_LIBS = -lm \
$(ARPACK_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(LAPACK_LIBRARY) \
$(BLAS_LIBRARY) \
$(CBLAS_LIBRARY) \
$(GRAPHIC_LIBRARY)\
$(RELIABILITY_LIBRARY) \
$(DISTRIBUTED_SUPERLU_LIBRARY) \
$(METIS_LIBRARY) $(PARALLEL_LIB) $(PETSC_LIB) $(HPM_LIB)
MACHINE_SPECIFIC_LIBS = -lpng -lessl -lessl_r -lGL -lX11 -lf
# %---------------------------------------------------------%
# | SECTION 8: INCLUDE FILES |
# | |
# | The following macros specify include files needed for |
# | compilation. |
# %---------------------------------------------------------%
PETSCINC = -I$(PETSC_DIR)/include -I$(PETSC_DIR)/bmake/$(PETSC_ARCH) -D_PETSC -DPETSC_USE_BOPT_g -DPETSC_USE_EXTERN_CXX
MACHINE_INCLUDES = -I/usr/local/BerkeleyDB.4.0/include \
-I/usr/include/mysql \
-I/usr/local/hpm_2_4_2/include \
-I$(HOME)/include \
-I$(UMFPACKdir) \
-I$(SUPERLUdir) \
-I$(SUPERLU_DISTdir) \
-I/usr/lpp/ppe.poe/include \
$(PETSC_INC)
# this file contains all the OpenSees/SRC includes
include $(FE)/Makefile.incl
#TCL_INCLUDES = -I/home/fmk/tcl8.3.3/generic
GL_INCLUDES= -I/home/csm/pallavig/pre_com_mesa/usr/include
TCL_INCLUDES = -I/home/csm/pallavig/usr/local/tcl/include
#TCL_INCLUDES = -I/usr/local/include
INCLUDES = $(MACHINE_INCLUDES) $(TCL_INCLUDES) $(FE_INCLUDES) $(GL_INCLUDES) -I/home/csm/pallavig/guru/petsc-2.2.1/include -I${PETSC_DIR}/bmake/${PETSC_ARCH}
Also in the Bin Directory I got OpenSees Executale only...... Not the OpenSeesMPI:/
While Running the OpenSees Executable i use the command
./OpenSees -hfile Hostfile
in that Hostfile and hfile I have given the no of processors to run any example.
I am not using "mpirun OpenSees -np blah" ..... what should i do.... to run the parallel OpenSees........ any specific command or else
Thanking You
Pallavi
do you need to run the parallel version or not?
if not, you need to change programming mode to sequential.
if you do, you need to start the job another way, e.g. mpirun, llsubmit. Different parallel machines have different ways to start a parallel job, just running OpenSees will never be it.
and OpenSees_Program is the only variable ever used in the Makefile. you can remove the OpenSees_Program_MPI as it has no effect.
if not, you need to change programming mode to sequential.
if you do, you need to start the job another way, e.g. mpirun, llsubmit. Different parallel machines have different ways to start a parallel job, just running OpenSees will never be it.
and OpenSees_Program is the only variable ever used in the Makefile. you can remove the OpenSees_Program_MPI as it has no effect.
fmk wrote:do you need to run the parallel version or not?
if not, you need to change programming mode to sequential.
if you do, you need to start the job another way, e.g. mpirun, llsubmit. Different parallel machines have different ways to start a parallel job, just running OpenSees will never be it.
and OpenSees_Program is the only variable ever used in the Makefile. you can remove the OpenSees_Program_MPI as it has no effect.
Dear fmk
we need to run the parallel version, and so no need to change the mode....
actualy our aim is to successfully carry out the installation and big simulation examples using parallel machines. Aslo benchmarking the results. So we have to have use the parallel code.
What do you think the Makefile i have sent You is the correct one to run the Parallel applications.
Is that the thing that having the OpenSees Executable in bin means the installation had been successfully.......
Thanking You
Regards
Pallavi