OpenSeesSP error - more bytes received than buffer size

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

Moderator: selimgunay

Post Reply
lsmatott
Posts: 1
Joined: Mon Jun 04, 2012 7:30 am
Location: UB

OpenSeesSP error - more bytes received than buffer size

Post by lsmatott » Tue Sep 19, 2017 6:30 am

I've been tasked with installing OpenSeesSP and OpenSeesMP on our system.
I've managed to get both of them compiled and linked with Mumps support
included (but no Petsc at the moment) and I'm testing them out. I followed
the install instructions located at the following link:

http://opensees.berkeley.edu/OpenSees/p ... essing.pdf

I adapted an example Makefile.def to use Intel's mpi and mkl libraries.

To test OpenSeesMP I used the examples presented in the following link:

http://opensees.berkeley.edu/OpenSees/w ... SeesMP.pdf

Everything runs fine with OpenSeesMP.

However, I've been having some trouble with OpenSeesSP. First, I can't
find a fully self-contained example. The examples, presented in the
following link:

http://opensees.berkeley.edu/OpenSees/w ... SeesSP.pdf

all source .tcl files that I can't seem to locate.

So what I've done is taken the basic truss example located here:

http://opensees.berkeley.edu/wiki/index ... ss_Example

and added a bunch of additional nodes and elements that connect with
node 4. I can solve this modified version just fine using plain OpenSees.
But when I try to solve using OpenSeesSP I get the following error:

StaticDomainDecompositionAnalysis::recvSelf - failed to get the Solver
Fatal error in MPI_Recv: Message truncated, error stack:
MPI_Recv(224).....................: MPI_Recv(buf=0x27226a0, count=4, MPI_INT, src=0, tag=0, MPI_COMM_WORLD, status=0x7ffc5eddc050) failed
MPIDI_CH3U_Receive_data_found(131): Message from rank 0 and tag 0 truncated; 40 bytes received but buffer size is 16

I did a bit of opserr instrumentation in the code and it seems that
the proc#0 has a solver but this fails to get passed along to proc#1:

Slave Process Running 1
proc#0 : getSolver() --- theSolver = 35860288
StaticDomainDecompositionAnalysis::recvSelf --- getting solver
--- done with theSOE->recvSelf()
proc#1 : getSolver() --- theSolver = 0
--- done with theSOE->getSolver()

Here's the command that I am using the launch OpenSeesSP:
mpirun -np 2 OpenSeesSP truss.tcl

The contents of truss.tcl are pasted below. I wonder if someone could take
a look and comment on whether I should expect this to work. And if it looks
ok, can you suggest a place to look to track down the error that I'm getting?

Thanks,
----------------------------------------------
L. Shawn Matott, PhD
Computational Scientist
University at Buffalo,
Center for Computational Research
701 Ellicott Street, Buffalo, New York 14203
email: lsmatott@buffalo.edu
phone: 716-881-7566
----------------------------------------------

# retrieved from http://opensees.berkeley.edu/wiki/index ... ss_Example on 9/11/2017
# expanded by L. Shawn Matott to incorporate more nodes
# ---------------------------------------------------------------------------------------------
# Model
#----------------------------------------------------------------------------------------------
# units: kip, in
# Remove existing model
wipe
# Create ModelBuilder (with two-dimensions and 2 DOF/node)
model BasicBuilder -ndm 2 -ndf 2
# Create nodes
# ------------
# Create nodes & add to Domain - command: node nodeId xCrd yCrd
node 1 0.0 0.0
node 2 144.0 0.0
node 3 168.0 0.0
node 4 500.0 96.0
node 5 180.0 0.0
node 6 190.0 0.0
node 7 200.0 0.0
node 8 210.0 0.0
node 9 220.0 0.0
node 10 230.0 0.0
node 11 240.0 0.0
node 12 250.0 0.0
node 13 260.0 0.0
node 14 270.0 0.0
node 15 280.0 0.0
node 16 290.0 0.0
node 17 300.0 0.0
node 18 310.0 0.0
node 19 320.0 0.0
node 20 330.0 0.0
node 21 340.0 0.0
node 22 350.0 0.0
node 23 360.0 0.0
node 24 370.0 0.0
node 25 380.0 0.0
node 26 390.0 0.0
node 27 400.0 0.0
node 28 410.0 0.0
node 29 420.0 0.0
node 30 430.0 0.0
node 31 440.0 0.0
node 32 450.0 0.0
node 33 460.0 0.0
node 34 470.0 0.0
node 35 480.0 0.0
node 36 490.0 0.0
node 37 500.0 0.0
node 38 510.0 0.0
node 39 520.0 0.0
node 40 530.0 0.0
node 41 540.0 0.0
node 42 550.0 0.0
node 43 560.0 0.0
node 44 570.0 0.0
node 45 580.0 0.0
node 46 590.0 0.0
node 47 600.0 0.0
node 48 610.0 0.0
node 49 620.0 0.0
node 50 630.0 0.0
node 51 640.0 0.0
node 52 650.0 0.0
node 53 660.0 0.0
node 54 670.0 0.0
node 55 680.0 0.0
node 56 690.0 0.0
node 57 700.0 0.0
node 58 710.0 0.0
node 59 720.0 0.0
node 60 730.0 0.0
node 61 740.0 0.0
node 62 750.0 0.0
node 63 760.0 0.0
node 64 770.0 0.0
node 65 780.0 0.0
node 66 790.0 0.0
node 67 800.0 0.0
node 68 810.0 0.0
node 69 820.0 0.0
node 70 830.0 0.0
node 71 840.0 0.0
node 72 850.0 0.0
node 73 860.0 0.0
node 74 870.0 0.0
node 75 880.0 0.0
node 76 890.0 0.0
node 77 900.0 0.0
node 78 910.0 0.0
node 79 920.0 0.0
node 80 930.0 0.0
node 81 940.0 0.0
node 82 950.0 0.0
node 83 960.0 0.0
node 84 970.0 0.0
node 85 980.0 0.0
node 86 990.0 0.0
node 87 1000.0 0.0
node 88 1010.0 0.0
node 89 1020.0 0.0
node 90 1030.0 0.0
node 91 1040.0 0.0
node 92 1050.0 0.0
node 93 1060.0 0.0
node 94 1070.0 0.0
node 95 1080.0 0.0
node 96 1090.0 0.0
node 97 1100.0 0.0
node 98 1110.0 0.0
node 99 1120.0 0.0
node 100 1130.0 0.0
# Set the boundary conditions - command: fix nodeID xResrnt? yRestrnt?
fix 1 1 1
fix 2 1 1
fix 3 1 1
fix 5 1 1
fix 6 1 1
fix 7 1 1
fix 8 1 1
fix 9 1 1
fix 10 1 1
fix 11 1 1
fix 12 1 1
fix 13 1 1
fix 14 1 1
fix 15 1 1
fix 16 1 1
fix 17 1 1
fix 18 1 1
fix 19 1 1
fix 20 1 1
fix 21 1 1
fix 22 1 1
fix 23 1 1
fix 24 1 1
fix 25 1 1
fix 26 1 1
fix 27 1 1
fix 28 1 1
fix 29 1 1
fix 30 1 1
fix 31 1 1
fix 32 1 1
fix 33 1 1
fix 34 1 1
fix 35 1 1
fix 36 1 1
fix 37 1 1
fix 38 1 1
fix 39 1 1
fix 40 1 1
fix 41 1 1
fix 42 1 1
fix 43 1 1
fix 44 1 1
fix 45 1 1
fix 46 1 1
fix 47 1 1
fix 48 1 1
fix 49 1 1
fix 50 1 1
fix 51 1 1
fix 52 1 1
fix 53 1 1
fix 54 1 1
fix 55 1 1
fix 56 1 1
fix 57 1 1
fix 58 1 1
fix 59 1 1
fix 60 1 1
fix 61 1 1
fix 62 1 1
fix 63 1 1
fix 64 1 1
fix 65 1 1
fix 66 1 1
fix 67 1 1
fix 68 1 1
fix 69 1 1
fix 70 1 1
fix 71 1 1
fix 72 1 1
fix 73 1 1
fix 74 1 1
fix 75 1 1
fix 76 1 1
fix 77 1 1
fix 78 1 1
fix 79 1 1
fix 80 1 1
fix 81 1 1
fix 82 1 1
fix 83 1 1
fix 84 1 1
fix 85 1 1
fix 86 1 1
fix 87 1 1
fix 88 1 1
fix 89 1 1
fix 90 1 1
fix 91 1 1
fix 92 1 1
fix 93 1 1
fix 94 1 1
fix 95 1 1
fix 96 1 1
fix 97 1 1
fix 98 1 1
fix 99 1 1
fix 100 1 1
# Define materials for truss elements
# -----------------------------------
# Create Elastic material prototype - command: uniaxialMaterial Elastic matID E
uniaxialMaterial Elastic 1 3000
#
# Define elements
#
# Create truss elements - command: element truss trussID node1 node2 A matID
element Truss 1 1 4 10.0 1
element Truss 2 2 4 5.0 1
element Truss 3 3 4 5.0 1
element Truss 5 5 4 5.0 1
element Truss 6 6 4 5.0 1
element Truss 7 7 4 5.0 1
element Truss 8 8 4 5.0 1
element Truss 9 9 4 5.0 1
element Truss 10 10 4 5.0 1
element Truss 11 11 4 5.0 1
element Truss 12 12 4 5.0 1
element Truss 13 13 4 5.0 1
element Truss 14 14 4 5.0 1
element Truss 15 15 4 5.0 1
element Truss 16 16 4 5.0 1
element Truss 17 17 4 5.0 1
element Truss 18 18 4 5.0 1
element Truss 19 19 4 5.0 1
element Truss 20 20 4 5.0 1
element Truss 21 21 4 5.0 1
element Truss 22 22 4 5.0 1
element Truss 23 23 4 5.0 1
element Truss 24 24 4 5.0 1
element Truss 25 25 4 5.0 1
element Truss 26 26 4 5.0 1
element Truss 27 27 4 5.0 1
element Truss 28 28 4 5.0 1
element Truss 29 29 4 5.0 1
element Truss 30 30 4 5.0 1
element Truss 31 31 4 5.0 1
element Truss 32 32 4 5.0 1
element Truss 33 33 4 5.0 1
element Truss 34 34 4 5.0 1
element Truss 35 35 4 5.0 1
element Truss 36 36 4 5.0 1
element Truss 37 37 4 5.0 1
element Truss 38 38 4 5.0 1
element Truss 39 39 4 5.0 1
element Truss 40 40 4 5.0 1
element Truss 41 41 4 5.0 1
element Truss 42 42 4 5.0 1
element Truss 43 43 4 5.0 1
element Truss 44 44 4 5.0 1
element Truss 45 45 4 5.0 1
element Truss 46 46 4 5.0 1
element Truss 47 47 4 5.0 1
element Truss 48 48 4 5.0 1
element Truss 49 49 4 5.0 1
element Truss 50 50 4 5.0 1
element Truss 51 51 4 5.0 1
element Truss 52 52 4 5.0 1
element Truss 53 53 4 5.0 1
element Truss 54 54 4 5.0 1
element Truss 55 55 4 5.0 1
element Truss 56 56 4 5.0 1
element Truss 57 57 4 5.0 1
element Truss 58 58 4 5.0 1
element Truss 59 59 4 5.0 1
element Truss 60 60 4 5.0 1
element Truss 61 61 4 5.0 1
element Truss 62 62 4 5.0 1
element Truss 63 63 4 5.0 1
element Truss 64 64 4 5.0 1
element Truss 65 65 4 5.0 1
element Truss 66 66 4 5.0 1
element Truss 67 67 4 5.0 1
element Truss 68 68 4 5.0 1
element Truss 69 69 4 5.0 1
element Truss 70 70 4 5.0 1
element Truss 71 71 4 5.0 1
element Truss 72 72 4 5.0 1
element Truss 73 73 4 5.0 1
element Truss 74 74 4 5.0 1
element Truss 75 75 4 5.0 1
element Truss 76 76 4 5.0 1
element Truss 77 77 4 5.0 1
element Truss 78 78 4 5.0 1
element Truss 79 79 4 5.0 1
element Truss 80 80 4 5.0 1
element Truss 81 81 4 5.0 1
element Truss 82 82 4 5.0 1
element Truss 83 83 4 5.0 1
element Truss 84 84 4 5.0 1
element Truss 85 85 4 5.0 1
element Truss 86 86 4 5.0 1
element Truss 87 87 4 5.0 1
element Truss 88 88 4 5.0 1
element Truss 89 89 4 5.0 1
element Truss 90 90 4 5.0 1
element Truss 91 91 4 5.0 1
element Truss 92 92 4 5.0 1
element Truss 93 93 4 5.0 1
element Truss 94 94 4 5.0 1
element Truss 95 95 4 5.0 1
element Truss 96 96 4 5.0 1
element Truss 97 97 4 5.0 1
element Truss 98 98 4 5.0 1
element Truss 99 99 4 5.0 1
element Truss 100 100 4 5.0 1
# Define loads
# ------------
#
# create a Linear TimeSeries with a tag of 1
timeSeries Linear 1
# Create a Plain load pattern associated with the TimeSeries,
# command: pattern Plain $patternTag $timeSeriesTag { load commands }
pattern Plain 1 1 {
# Create the nodal load - command: load nodeID xForce yForce
load 4 100 -50
}
# ---------------------------------------------------------------------------------------------
# Analysis
#----------------------------------------------------------------------------------------------
# Create the system of equation
system BandSPD
# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM
# Create the constraint handler, a Plain handler is used as homo constraints
constraints Plain
# Create the integration scheme, the LoadControl scheme using steps of 1.0
integrator LoadControl 1.0
# Create the solution algorithm, a Linear algorithm is created
algorithm Linear
# create the analysis object
analysis Static
# ---------------------------------------------------------------------------------------------
# Output Specification
#----------------------------------------------------------------------------------------------
# create a Recorder object for the nodal displacements at node 4
recorder Node -file example.out -time -node 4 -dof 1 2 disp
# create a Recorder for element forces, one for global system and the other for local system
recorder Element -file eleGlobal.out -time -ele 1 2 3 forces
recorder Element -file eleLocal.out -time -ele 1 2 3 basicForces
# ---------------------------------------------------------------------------------------------
# Perform the Analysis
#----------------------------------------------------------------------------------------------
analyze 1
# ---------------------------------------------------------------------------------------------
# Print Information to Screen
#----------------------------------------------------------------------------------------------
puts "node 4 displacement: [nodeDisp 4]"
print -node 4
print -ele
puts "all done!"

ajamthe
Posts: 2
Joined: Tue Mar 06, 2018 12:42 pm

Re: OpenSeesSP error - more bytes received than buffer size

Post by ajamthe » Tue Mar 06, 2018 2:15 pm

Did you get this resolved : StaticDomainDecompositionAnalysis::recvSelf - failed to get the Solver
Fatal error in MPI_Recv: Message truncated, error stack:
MPI_Recv(224).....................: MPI_Recv(buf=0x27226a0, count=4, MPI_INT, src=0, tag=0, MPI_COMM_WORLD, status=0x7ffc5eddc050) failed
MPIDI_CH3U_Receive_data_found(131): Message from rank 0 and tag 0 truncated; 40 bytes received but buffer size is 16
I am facing similar issue while running OpenSees SP MRF4T11.tcl input script. Thanks.

Post Reply