Problem with Large Model Solution

Dear Calculix users,

I’m new user of Calculix software, and I have a problem with run large model (> 1.5M nodes).
I try to analysis this model, but when I run it the solution fail without defined which error occurring.
However if I reduce model side (delete most of the elements) the analysis done correctly.

For this I think that is problem of calculix setting in general instead of analysis setting.
I don’t think that is a problem of workstation capacity because I have 18 cores.

The same problem if I set 18 cores or only 1 core.

Please could anyone help me?

All the best,
Stefano

3 Likes

Which solver do you use - Spooles, Pardiso, PaStiX ? Consider utilizing fewer elements, maybe such dense mesh is not necessary in this case or you could refine it only locally.

I try with all of that, but I give the same result.

I know that there’s also the possibility to create a submodel, but my purpose is to test calculix in term of perfomance and compare analysis time result with my Simcenter Nastran.

All the best,
S

1 Like

I routinely run problems of about 1.9 million nodes, using Calculix 18 and Pardiso with a Windows implementation. Running using Pastix at that size problem does not work for me, but it is very fast with smaller problems

To run that size problem I have 64 GB of memory and a pagefile in a Pcie 4 nvme SSD. The pagefile is busy on that size problem and the memory is fully utilized but I can use the computer normally while the computation is running with no apparent slowdown. I run using 4 cores for the solver. The read and write data flow only peaks a bit over 500 MB/sec, so performance might not suffer much with a lower speed SSD.

I use Mecway 14 to run calculix. The problems take 2-6 hours depending upon how non-linear they are (about 20 minutes per iteration). I have run a problem up to 4MB of nodes in Mecway internally but it takes a day plus overnight as it uses Spooles. BTW Pastix quits during solve, but is not using all the computers memory when it does. I heard there is a 32bit/64 bit issue on array indices unless compiled for 8* byte integers. The size limit for Pastix may or may not be related to this issue as I did not do the compile.

1 Like

Thanks for your reply Michael,

I use prepomax or Bconverged (both wit 2.18 version), but the problem is the same.
I try to change the solver in Prepomax from Pastix to PARDISO but I saw that Pastix is already use.
Reading the documentation I see that PARDISO need to be compiled: right? could you give me indication about to compile it?

All the best
S

1 Like

I did not compile it. I downloaded ccx_2.18_dynamic.exe. from calculix_2.18_4win.zip. You insert a command to chose the solver. I use Mecway and the attached graphic shows what I input for Pardiso. See section 7.115 in the CCX_2.18 Manual.
image

My understanding is the spooles solver limits the size of models you can solve to a few million equations. To solve larger models you need to use the Pardiso solver.

To solve larger models you need to use the Pardiso solver.

Or PaStiX. It shouldn’t have any limitations either and is said to be even faster than Pardiso. Oh, and it’s open-source, unlike commercial Pardiso. The only problem with PaStiX is that some people say that it may provide wrong results in selected cases so it’s better to be careful when using it.

I would love to have a compiled windows version using Pastix without size limitation. GPU use too, though I don’t know how much benefit it might be. The speed of Pastix would make large models so much more practical. Note when I ran a 4 million node file in Mecway (spooles solver) Victor provided info for a setting that used the out of core features. I think Callculix (and Pastix) may have a similar capability but it needs to be set up at compile time, including where the temp files are stored. The problem, though, may simply be that the compile of Pastix used in the windows version used 4 byte integers.

Dears,

thanks for interesting informations.
I use prepomax, then I change solver and selecting ccx_dynamics.
When I use this however, I give this error message:

image

In version 2.18 zip file for windows, there’s glut64.dll, no the previous mentioned file.

There’s another file o tool that I need to install?

Thanks

All the best,
Stefano

Intel’s MKL pardiso has been free for many years ( at least since 2016 ). Just last year Intel has made all their compilers free. So now even the MPI pardiso is free too. I am going to resume some work I did with that back in 2016 to see how it speeds up across many machines.

I also looked at the Spooles source code last night. It was written almost 25 years ago. I don’t believe it supports 64-bit long integers . I am going to ask some C experts if it can be easily changed to support 64-bit… That’s probably why it crashes if model has more than 1 million degrees of freedom…

1 Like

I need to install it? where could I find it?

Thanks
S

I wonder if anyone has made a comparison between Intel’s MKL Pardiso vs. Pardiso from the Pardiso Solver Project. Their website says something like this:

Important: Please note that the Intel MKL version of PARDISO is based on our version from 2006 and that a lot of new features and improvements of PARDISO are not available in the Intel MKL library.

yeah there seems to be some dispute going on between the two. on the intel forum they replied about that in one thread. stating that they have updated pardiso many times since 2006 and statements or comparisons like that are not accurate. you would need to compare the current intel pardiso to the current pardiso project. it’s a shame that this is going on. not sure of the back story.

2 Likes

Dears,

I install MKL pardiso solver, but I suppose that I need to link the solver to ccx to use it (as indicated in ccx manual).
Could anyone indicated me where and/or how to setting it?

All the best,
Stefano

1 Like

I had this same issue I think, I ended up searching the folders in

C:\Program Files (x86)\Intel\oneAPI for mkl_rt.1.dll and copied this file to the same directory as where ccx_dynamic was run from. Note that I used powershell to run my files.

2 Likes

I only use linux so not sure how the Windows version works. I thought there was a windows version with the pardiso solver already built in?

Also it could be a problem with your model or Calculix, not spooles. You can try seeing if your model solves here on my machines as a test:

https://www.feacluster.com/demo.php

1 Like

I’ll look into it in next few months hopefully. I am doubtful there would be any significant difference. These solvers are very sophisticated so probably any improvements are just incremental and also application specific.

1 Like

I thinked the same, then I tried to copy and paste the file into the ccx_dynamic folder.
Now the error message is disappear, but I saw that Pastix has been used instead Pardiso, though if I select Pardiso or Spooles as a solvers…with Pastix the analyis continue to crash, but if I reduce the model size, by removing most of the element, I don’t have problem…

Anyone have the same problem?

Thanks
All the best
S

Thanks for the indication.
I update the model on your cluster.

All the best
S