Problem while running Opensees on AIX (UNIX OS)

For developers writing C++, Fortran, Java, code who have questions or comments to make.

Moderators: silvia, selimgunay, Moderators

Post Reply
pallavi
Posts: 53
Joined: Tue Aug 29, 2006 2:56 am
Location: CDAC
Contact:

Problem while running Opensees on AIX (UNIX OS)

Post by pallavi »

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
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

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.
pallavi
Posts: 53
Joined: Tue Aug 29, 2006 2:56 am
Location: CDAC
Contact:

Post by 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
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

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.
pallavi
Posts: 53
Joined: Tue Aug 29, 2006 2:56 am
Location: CDAC
Contact:

Post by pallavi »

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
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

the Makefile looks fine .. you just have to figure out how to start a parallel mpi application on your machine .. it is not done using the app name.
hellojikir
Posts: 10
Joined: Tue Apr 15, 2008 6:38 am

Post by hellojikir »

:D :D :D :D






ImageImageImageImageImageImageImageImageImageImage
Post Reply