Hello STKO Team,
Thanks for the reminder. Previously I was using the MPCORecorder.cpp file directly from Dr Abell's repo as that was the only file changed for the recorder. I have tried to use the latest code from the official OpenSees repo (pull request 475 got merged when I cloned the code. I changed "DomainPartitioner *thePartitioner = 0;//this->getPartitioner();" to "DomainPartitioner *thePartitioner = this->getPartitioner();" in the PartitionedDomain.cpp file to make the partition work, guessing it was just a typo) and the problem from MPCO still exist, as shown below:
Code: Select all
root@a62e97a2e5aa:/home/ops# mpirun -np 4 OpenSeesPARALLEL main.tcl
Primary Process Running OpenSees Interpreter 0
OpenSees -- Open System For Earthquake Engineering Simulation
Pacific Earthquake Engineering Research Center
Version 3.2.2 64-Bit
(c) Copyright 1999-2016 The Regents of the University of California
All Rights Reserved
(Copyright and Disclaimer @ http://www.berkeley.edu/OpenSees/copyright.html)
Secondary Process Running 1
Secondary Process Running 2
Secondary Process Running 3
Start Gravity Analysis
apply load factor: 0.5
DomainPartitioner::partition() - Start
DomainPartitioner::partition - Succesfull partition. Now redistributing data accordingly.
* Identifying components to transfer.
+ Elements.
+ Nodes.
+ Boundary Nodes.
+ MP constraints.
+ MP constraints (2nd pass).
* Sending nodes.
* Sending elements.
* Sending Load Patterns
* Sending homogeneous SP Constraints`
* Sending MP Constraints
DomainPartitioner::partition() - Done
apply load factor: 1.0
Gravity Analysis Has Been Finished!
MPCO recorder - Written by ASDEA Software Technology: M.Petracca, G.Camata
ASDEA Software Technology: https://asdeasoft.net
STKO (Scientific ToolKit for OpenSees): https://asdeasoft.net/stko/
If you use this tool, please cite us:
Petracca, M., Candeloro, F., & Camata, G. (2017). "STKO user manual". ASDEA Software Technology, Pescara Italy.
MPCORecorder sendSelf from: 0, send self count = 1
MPCORecorder sendSelf from: 0, send self count = 2
MPCORecorder sendSelf from: 0, send self count = 3
MPCORecorder recvSelf from: 1, send self count = -1
filename = mpcoRecorder.hdf5
freq: dt = 0
nodal results [2]
0
1
elemental results [0]
node set:
[]
elem set:
[]
MPCORecorder recvSelf from: 2, send self count = -1
filename = mpcoRecorder.hdf5
freq: dt = 0
nodal results [2]
0
1
elemental results [0]
node set:
[]
elem set:
[]
MPI_Channel::recvID() - incorrect number of entries for ID received: 2 exptected: 4
ActorSubdomain::run - error receiving msgData
MPI_Channel::recvID() - incorrect number of entries for ID received: 2 exptected: 4
ActorSubdomain::run - error receiving msgData
MPCORecorder recvSelf from: 3, send self count = -1
filename = mpcoRecorder.hdf5
freq: dt = 0
nodal results [2]
0
1
elemental results [0]
node set:
[]
elem set:
[]
MPI_Channel::recvID() - incorrect number of entries for ID received: 2 exptected: 4
ActorSubdomain::run - error receiving msgData
Fatal error in MPI_Recv: Message truncated, error stack:
MPI_Recv(184)...........................: MPI_Recv(buf=0x5651f8a15700, count=1, MPI_INT, src=0, tag=0, MPI_COMM_WORLD, status=0x7fff1b966150) failed
MPIDI_CH3_PktHandler_EagerShortSend(349): Message from rank 0 and tag 0 truncated; 16 bytes received but buffer size is 4
Fatal error in MPI_Recv: Message truncated, error stack:
MPI_Recv(184)...........................: MPI_Recv(buf=0x55c3333b1700, count=1, MPI_INT, src=0, tag=0, MPI_COMM_WORLD, status=0x7ffeae1bfd40) failed
MPIDI_CH3_PktHandler_EagerShortSend(349): Message from rank 0 and tag 0 truncated; 16 bytes received but buffer size is 4
Fatal error in MPI_Recv: Message truncated, error stack:
MPI_Recv(184)...........................: MPI_Recv(buf=0x562bb77bd700, count=1, MPI_INT, src=0, tag=0, MPI_COMM_WORLD, status=0x7ffe41460600) failed
MPIDI_CH3_PktHandler_EagerShortSend(349): Message from rank 0 and tag 0 truncated; 16 bytes received but buffer size is 4
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 1
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
As before, there is no problem when using 1 core:
Code: Select all
root@a62e97a2e5aa:/home/ops# mpirun -np 4 OpenSeesPARALLEL main.tcl
Primary Process Running OpenSees Interpreter 0
OpenSees -- Open System For Earthquake Engineering Simulation
Pacific Earthquake Engineering Research Center
Version 3.2.2 64-Bit
(c) Copyright 1999-2016 The Regents of the University of California
All Rights Reserved
(Copyright and Disclaimer @ http://www.berkeley.edu/OpenSees/copyright.html)
Secondary Process Running 1
Secondary Process Running 2
Secondary Process Running 3
Start Gravity Analysis
apply load factor: 0.5
DomainPartitioner::partition() - Start
DomainPartitioner::partition - Succesfull partition. Now redistributing data accordingly.
* Identifying components to transfer.
+ Elements.
+ Nodes.
+ Boundary Nodes.
+ MP constraints.
+ MP constraints (2nd pass).
* Sending nodes.
* Sending elements.
* Sending Load Patterns
* Sending homogeneous SP Constraints`
* Sending MP Constraints
DomainPartitioner::partition() - Done
apply load factor: 1.0
Gravity Analysis Has Been Finished!
-----------------------------------------------------------
START Transient Analysis
-----------------------------------------------------------
CurrentTime = 0.002, TotalTime = 0.023
CurrentTime = 0.005, TotalTime = 0.023
CurrentTime = 0.007, TotalTime = 0.023
CurrentTime = 0.009, TotalTime = 0.023
CurrentTime = 0.011, TotalTime = 0.023
CurrentTime = 0.014, TotalTime = 0.023
CurrentTime = 0.016, TotalTime = 0.023
CurrentTime = 0.018, TotalTime = 0.023
CurrentTime = 0.020, TotalTime = 0.023
CurrentTime = 0.023, TotalTime = 0.023
CurrentTime = 0.025, TotalTime = 0.023
-----------------------------------------------------------
FINISH Transient Analysis
-----------------------------------------------------------
Time for analyzing 10 steps: 15 s
Process Terminating 0
Process Terminating 1
Process Terminating 2
Process Terminating 3
This is quite puzzling as the new code doesn't work in my cases. Thanks for your attention!
Regards,
Junfei