Different Results OpenSees 32bit and 64bit C++

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

Moderators: silvia, selimgunay, Moderators

Post Reply
GFccny
Posts: 6
Joined: Wed Oct 30, 2013 10:57 am
Location: City College New York

Different Results OpenSees 32bit and 64bit C++

Post by GFccny » Wed Apr 08, 2015 8:09 am

Dear Frank
I have installed different repositories of OpenSees Libraries on Ubuntu 32bit and 64bit architecture. I have different results when I run the code on 32bit and 64bit machine.
I perform static nonlinear analysis of grillages. I have checked the steps line by line on each platform and unitl I run Analyze(1) the input is the same, but the result of the analyses are different. I compared the result of the 32bit Model with a similar model in SAP2000 and the values are similar, so I presume that something happens on the 64bit platform. The repository that I have been using on 32bit is +/- 5591 (Nov 2013). this version compiles and run on 64bit machines too but gives different results.

I have also downloaded the recent version 5956 and installed it. the C++ program compiles but when I run it I get the following sysmalloc error:

EP_OPS.exe: malloc.c:2372: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) == 0)' failed.
[g-Aspire-V5-123:25447] *** Process received signal ***
[g-Aspire-V5-123:25447] Signal: Aborted (6)
[g-Aspire-V5-123:25447] Signal code: (-6)
EP_OPS.exe: malloc.c:2372: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) == 0)' failed.
[g-Aspire-V5-123:25446] *** Process received signal ***
[g-Aspire-V5-123:25446] Signal: Aborted (6)
[g-Aspire-V5-123:25446] Signal code: (-6)
^Cmpirun: killing job...

with the repository 5956 that error is generated when the program reaches the line where ArcLength Integrator is created (INTEG_2 code lines are below)

AnalysisModel *An_Model = new AnalysisModel();
CTestNormDispIncr *CTEST_2 = new CTestNormDispIncr(1e-6,STEP,0);
EquiSolnAlgo *SOL_ALG = new NewtonRaphson();
StaticIntegrator *INTEG_1 = new LoadControl(1.0,1,0.1,2.0);
StaticIntegrator *INTEG_2 = new ArcLength(1.0);
ConstraintHandler *HANDL = new PlainHandler();
RCM *An_RCM = new RCM();
DOF_Numberer *NUMB = new DOF_Numberer(*An_RCM);
BandGenLinSolver *SOLVER = new BandGenLinLapackSolver();
LinearSOE *L_SOE = new BandGenLinSOE(*SOLVER);
//
StaticAnalysis theAnalysis(*BR_Domain,
*HANDL,
*NUMB,
*An_Model,
*SOL_ALG,
*L_SOE,
*INTEG_1,
(CTEST_2));

Hope you can guide me to fix the issue.
Thank you for your time.
Regards.

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Different Results OpenSees 32bit and 64bit C++

Post by fmk » Thu Apr 09, 2015 8:53 am

send me the script if you can.

GFccny
Posts: 6
Joined: Wed Oct 30, 2013 10:57 am
Location: City College New York

Re: Different Results OpenSees 32bit and 64bit C++

Post by GFccny » Fri Apr 10, 2015 5:45 am

Thank you Frank,
I have solved the issue with release 5921 on 32bit and 64bit. Basically on 32bit machine the ArcLength integrator "StaticIntegrator *INTEG_2 = new ArcLength(1.0)" performs the analysis beyond the elastic limit of the structure with the default value of the parameter alpha=1.0, while on the 64bit machine does not, and the analysis stops.
By changing alpha=0.1 "StaticIntegrator *INTEG_2 = new ArcLength(1.0,0.1)";
both 32bit and 64bit give the same result. Seems that the 64bit is more sensitive with the step increment.

About the sysmalloc error on the 5956 repository the issue remain.
Thank you for your help.

Post Reply