# Spooles uses only one core

**URL:** <https://calculix.discourse.group/t/spooles-uses-only-one-core/1213>\
**Category:** Uncategorized\
**Created:** [August 14, 2022, 3:06pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213 "2022-08-14T15:06:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nobody-86](https://avatars.discourse-cdn.com/v4/letter/n/e495f1/32.png) [@Nobody-86](https://calculix.discourse.group/u/Nobody-86)\
**Post date:** [August 14, 2022, 3:06pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/1 "2022-08-14T15:06:25Z")

</div>

Hello there,

I noticed that calculix doesn’t use all cores, at least not for every operation. I have set the number of cores to 6 via the environment variable OMP\_NUM\_THREADS=6. In the output calculix also writes:

> Using up to 6 cpu(s) for the stress calculation.  
> Using up to 6 cpu(s) for the symmetric stiffness/mass contributions.

However, the SPOOLES solver uses only one core:

> Factoring the system of equations using the unsymmetric spooles solver  
> Using 1 cpu for spooles.

What can I do so that SPOOLES also uses 6 cores?

---

<div class="post-metadata">

**Author:** ![Calc\_em](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@Calc\_em](https://calculix.discourse.group/u/Calc_em)\
**Post date:** [August 14, 2022, 3:10pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/2 "2022-08-14T15:10:05Z")

</div>

Check the documentation chapter “How to perform CalculiX calculations in parallel”. It describes what can and needs to be done with Spooles in terms of parallelization.

---

<div class="post-metadata">

**Author:** ![JohnM](https://avatars.discourse-cdn.com/v4/letter/j/848f3c/32.png) [@JohnM](https://calculix.discourse.group/u/JohnM)\
**Post date:** [August 14, 2022, 5:20pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/3 "2022-08-14T17:20:50Z")

</div>

If you have a specific reason for sticking with spooles, ignore this comment, but I highly recommend you try the pastix or pardiso solver

---

<div class="post-metadata">

**Author:** ![Nobody-86](https://avatars.discourse-cdn.com/v4/letter/n/e495f1/32.png) [@Nobody-86](https://calculix.discourse.group/u/Nobody-86)\
**Post date:** [August 14, 2022, 8:06pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/4 "2022-08-14T20:06:18Z")

</div>

Hi,

@Calc_em: Thanks. The chapter says that SPOOLES had to be compiled with a multi treading option. How can I check if this is the case for me? I have an already precompiled version of Calculix and honestly I don’t even know where I got it from. It is a bit older, the archive is called CL34-win64.zip.

@JohnM: no, there is actually no specific reason to use SPOOLES. I just use it because it “came with it”. As far as i know, spastix and paradiso have to be compiled by the user, and I haven’t managed to do that yet.

---

<div class="post-metadata">

**Author:** ![JohnM](https://avatars.discourse-cdn.com/v4/letter/j/848f3c/32.png) [@JohnM](https://calculix.discourse.group/u/JohnM)\
**Post date:** [August 14, 2022, 10:03pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/5 "2022-08-14T22:03:33Z")

</div>

if you are using Windows, there are pre-compiled versions on the calculix website, and you’re in luck, 2.20 is out. the link is easy to miss, it just says “files”. if you run ccx\_dynamic.exe, it will default to pastix and switch to pardiso for modal. runs in parallel

---

<div class="post-metadata">

**Author:** ![JohnM](https://avatars.discourse-cdn.com/v4/letter/j/848f3c/32.png) [@JohnM](https://calculix.discourse.group/u/JohnM)\
**Post date:** [August 14, 2022, 11:25pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/6 "2022-08-14T23:25:58Z")

</div>

[http://www.dhondt.de/calculix\_2.20\_4win.zip](http://www.dhondt.de/calculix_2.20_4win.zip)

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [August 14, 2022, 11:57pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/7 "2022-08-14T23:57:04Z")

</div>

> [@Nobody-86](#):
>
> no, there is actually no specific reason to use SPOOLES

Spooles is an old solver (1998) known to be tested so long, perform well and reputable. better use as references for another newest solver (e.g PaStiX or Pardiso) in which some bugs or unwell may exist

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [August 15, 2022, 12:41am UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/8 "2022-08-15T00:41:36Z")

</div>

> [@Nobody-86](#):
>
> What can I do so that SPOOLES also uses 6 cores?

you can find the precompiled executable at [GitHub](https://github.com/ddfem/ccx_mingw64), however an updates to the latest version of CalculiX is not available.

---

<div class="post-metadata">

**Author:** ![vicmw](https://avatars.discourse-cdn.com/v4/letter/v/6de8d8/32.png) [@vicmw](https://calculix.discourse.group/u/vicmw)\
**Post date:** [August 15, 2022, 7:13am UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/9 "2022-08-15T07:13:06Z")

</div>

Multithreaded Spooles produces wrong results for eigenvalue problems half the time. I don’t know if that’s Spooles itself or some dependency or CCX but I don’t go near multithreaded Spooles anymore.

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [August 15, 2022, 8:42am UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/10 "2022-08-15T08:42:38Z")

</div>

i was hear about it in MT, left the user verify for all solver. even Taucs solver in commercial FE, the developer still notify.

---

<div class="post-metadata">

**Author:** ![Nobody-86](https://avatars.discourse-cdn.com/v4/letter/n/e495f1/32.png) [@Nobody-86](https://calculix.discourse.group/u/Nobody-86)\
**Post date:** [August 15, 2022, 7:57pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/11 "2022-08-15T19:57:29Z")

</div>

Thank you very much for all the answers. I downloaded the new version and it seems that now all cores are used for each operation. I have not generated results yet, but I will run some test models.

---

<div class="post-metadata">

**Author:** ![Hyp](https://avatars.discourse-cdn.com/v4/letter/h/db5fbb/32.png) [@Hyp](https://calculix.discourse.group/u/Hyp)\
**Post date:** [August 17, 2022, 6:29am UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/12 "2022-08-17T06:29:28Z")

</div>

Hi,

I am using Ubuntu 20.04 with the ccx\_2.20 executable from [http://www.dhondt.de/](http://www.dhondt.de/). By setting OMP\_NUM\_THREADS I get stress calculation and symmetric stiffness/mass contributions with several cores working but not Spooles (only 1 core). Same as Nobody-86 was explaining (but for Windows i guess).

So, are there compiled versions for Linux anywhere out there that I could use in a similar easy way?

It would be even better to get Pastix and/or Pardiso included as I know Spooles cannot swap to the hard-drive and the other ones seem to be faster.

Thanks a lot in advance!

---

<div class="post-metadata">

**Author:** ![JohnM](https://avatars.discourse-cdn.com/v4/letter/j/848f3c/32.png) [@JohnM](https://calculix.discourse.group/u/JohnM)\
**Post date:** [August 17, 2022, 12:51pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/13 "2022-08-17T12:51:20Z")

</div>

Unless you are using Ubuntu to create a Linux environment for some sort of coupled analysis with open foam for example, I would suggest trying the windows environment. the pardiso and pastix solvers are both available, run multiple processor and work well.

---

<div class="post-metadata">

**Author:** ![Hyp](https://avatars.discourse-cdn.com/v4/letter/h/db5fbb/32.png) [@Hyp](https://calculix.discourse.group/u/Hyp)\
**Post date:** [August 17, 2022, 12:59pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/14 "2022-08-17T12:59:51Z")

</div>

Hey, thanks for your feedback. I have a working Windows environment. Lately this was lacking a little bit of RAM to run a bigger problem. As I have access to some Linux server I wanted to test this one to do the calculation. In the meantime i found in some older [thread](https://calculix.discourse.group/t/correction-to-spooles-2-2-for-large-input-decks/1047/5): [FEA Cluster](https://www.feacluster.com/calculix.php#4) where an linux pardiso executable can be downloaded. I will try this out. In addition I ordered some more RAM for my Windows machine. 😉

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [August 17, 2022, 1:14pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/15 "2022-08-17T13:14:14Z")

</div>

> [@Hyp](#):
>
> In addition I ordered some more RAM for my Windows machine. 😉

right, it seems better to invest in large RAM and processor speed instead number of cores or disk speed.

some [report](https://www.sciencedirect.com/science/article/pii/S0898122115004927) shown MKL Pardiso degrades in out-of-core mode. also no guarantee to works when RAM is not enough, due to improperly in read/write process.

---

<div class="post-metadata">

**Author:** ![MichaelPE](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@MichaelPE](https://calculix.discourse.group/u/MichaelPE)\
**Post date:** [August 17, 2022, 8:51pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/16 "2022-08-17T20:51:56Z")

</div>

I had some luck setting up a large page file to a fast SSD to ease ram needs. Works well enough up to about 170% of the maximum working set. (i.e. working set up to 110 GB for 64 GB of ram. Much of the data and code is not used simultaneously. This is somewhat less true for Pastix than Pardiso as for me Pastix becomes slower than Pardiso for problems greater than 1,100,000 nodes.

Also for Spooles as run inside Mecway, Victor proficed a change to the MECWAY 13 init file so that the internal spooles would make swap files. I sucessfully ran a 4,000,000+ node problem, though it took near 24 hours.

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [August 17, 2022, 9:42pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/17 "2022-08-17T21:42:18Z")

</div>

> [@MichaelPE](#):
>
> Works well enough up to about 170% of the maximum working set. (i.e. working set up to 110 GB for 64 GB of ram.

thanks for sharing experiences, is PaStiX stopped to ran and unfinished at some limit?

> [@MichaelPE](#):
>
> This is somewhat less true for Pastix than Pardiso as for me Pastix becomes slower than Pardiso for problems greater than 1,100,000 nodes

if i may know, detail is needed

- processor type AMD or Intel based
- analysis type: static, dynamic, cyclic
- large deformation : activated or not
- material : elastic or plastic
- contact : exist or no, single/multi part, large/small sliding, friction

thanks in advances

---

<div class="post-metadata">

**Author:** ![MichaelPE](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@MichaelPE](https://calculix.discourse.group/u/MichaelPE)\
**Post date:** [August 17, 2022, 10:01pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/18 "2022-08-17T22:01:37Z")

</div>

> ![](https://global.discourse-cdn.com/free1/uploads/calculix/original/1X/d9db5ca5297ac364e347cce16eea9614a3c74cf4.png "xyont") | [xyont](https://calculix.discourse.group/u/xyont)  
> August 17 |
> 
> - | - |

> ![](https://global.discourse-cdn.com/free1/uploads/calculix/original/1X/e558571d64d731b3ea74ab31453b15d03e2b1c12.png)MichaelPE:
> 
> Works well enough up to about 170% of the maximum working set. (i.e. working set up to 110 GB for 64 GB of ram.

thanks for sharing experiences, is PaStiX stopped to ran and unfinished at some limit? About 500,000 nodes. Over that the 8i compilation is needed

> ![](https://global.discourse-cdn.com/free1/uploads/calculix/original/1X/e558571d64d731b3ea74ab31453b15d03e2b1c12.png)MichaelPE:
> 
> This is somewhat less true for Pastix than Pardiso as for me Pastix becomes slower than Pardiso for problems greater than 1,100,000 nodes

if i may know, detail is needed

- processor type AMD or Intel based AMD 3700X
- analysis type: static, dynamic, cyclic Static non-linear
- large deformation : activated or not not?
- material : elastic or plastic Compression only
- contact : exist or no, single/multi part, large/small sliding, friction No.

thanks in advances

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [August 17, 2022, 11:07pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/19 "2022-08-17T23:07:57Z")

</div>

i miss something, it’s about MKL versions since many scientific community reported bad performances for not Intel based processor. some critical features (AVX) is deactivated or locked by the publisher.

i work in area of medium mesh size, but the model may complex enough frequently struggle and hard to finish. it’s static/cyclic, large deformation elastoplastic, bunch of multipart contact and large sliding. in my experiences PaStiX is faster to convergences than MKL

i have used MKL Pardiso for so long before PaStiX implemented, then trying keep away after issue in locked features.

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [December 26, 2023, 2:02pm UTC](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213/20 "2023-12-26T14:02:24Z")

</div>

hi, there’s an update of CalculiX with Spooles MT solver from [CFturbo](https://cfturbo.com/software/cfturbo-fea). It seems many patches has been added.

 ![2023-12-26 20_58_11-bin](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/2/2491d816ad17e35afcaabc7cd3708691191ed1ae.png)

 ![2023-12-26 20_55_25-2023-12-26 20_42_27- - Windows Photo Viewer](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/2/2f25f13fa91e0e709a695a1a2ee2c6b478b81c3e.png)

 ![2023-12-26 21_11_42-](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/d/d6492faeb9befec4b8a4705544eeddfc5369e4cc.png)

 ![2023-12-26 20_53_23-src](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/8/8fd6ab4a405bbee8ba542a8c1601117e5d368108.png)

[Next page](https://calculix.discourse.group/t/spooles-uses-only-one-core/1213.md?page=2)
