# CalculiX with pardiso OUT-OF-CORE mode

**URL:** https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676
**Category:** Advanced features
**Created:** [May 24, 2023, 8:40am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676 "2023-05-24T08:40:18Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![jlucas](https://avatars.discourse-cdn.com/v4/letter/j/b4bc9f/32.png) [@jlucas](https://calculix.discourse.group/u/jlucas)
#### Post date: [May 24, 2023, 8:40am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/1 "2023-05-24T08:40:18Z")

</div>

Hello,

Did anyone tried to modify the code to have pardiso running in out-of-core mode? Apparently seams simple, just to set iparm[59]=1, has described in the following link:

> **[How to use Intel® MKL OOC PARDISO](https://www.intel.com/content/www/us/en/developer/articles/training/how-to-use-ooc-pardiso.html)**
>
> This article explains, how to enable OOC (out-of-core) vesrsion of PARDISO from Intel® MKL.

(I know, the devil normally is in the details!)

This is also a suggestion to improve CalculiX as an out-of-core option would certainly allow for much larger models (at the expense of speed off course).

Maybe a simple way to do this would be to allow another solver option, for example SOLVER=PARDISO-OUT-OF-CORE. This is again just a suggestion.

Regards,  
Jorge

---

<div class="post-metadata">

### Author: ![rafal.brzegowy](https://avatars.discourse-cdn.com/v4/letter/r/a9adbd/32.png) [@rafal.brzegowy](https://calculix.discourse.group/u/rafal.brzegowy)
#### Post date: [May 25, 2023, 6:11am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/2 "2023-05-25T06:11:58Z")

</div>

Look at this:

> <https://github.com/Dhondtguido/CalculiX/pull/8/commits/f63d1c3b345918dbf653b65621dd28a6c39cc9dc>

---

<div class="post-metadata">

### Author: ![Michal](https://avatars.discourse-cdn.com/v4/letter/m/34f0e0/32.png) [@Michal](https://calculix.discourse.group/u/Michal)
#### Post date: [May 26, 2023, 7:29pm UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/3 "2023-05-26T19:29:35Z")

</div>

could you send fully detailed instruction how to do it for prepomax ?

---

<div class="post-metadata">

### Author: ![jlucas](https://avatars.discourse-cdn.com/v4/letter/j/b4bc9f/32.png) [@jlucas](https://calculix.discourse.group/u/jlucas)
#### Post date: [June 19, 2023, 10:15am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/4 "2023-06-19T10:15:12Z")

</div>

Hello,

I think this change is already included for next version of CalculiX. The feature is on the closed pull requests. I did not test, but in principle if you compile the development version from [GitHub - Dhondtguido/CalculiX: This repository contains the source files of CalculiX, a three-dimensional Finite Element Program (www.calculix.de).](http://github.com/Dhondtguido/CalculiX) you should get a version of calculix with the feature.

To used it I think you have to set the environment variables (MKL\_PARDISO\_OOC\_MAX\_CORE\_SIZE and MKL\_PARDISO\_OCC\_MAX\_SWAP\_SIZE) accordingly:

![image](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/a/ab520bac119fcf6bf0c205725db4da67bcdd5c82.png)

Its also good to understand the rules:

 ![image](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/4/462486d8a679c91c72a7db8b90c49f72256c81e5.png)

Again, I did not test so can not ensure all works as expected.

---

<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: [June 19, 2023, 11:08am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/5 "2023-06-19T11:08:31Z")

</div>

> [@jlucas](#):
>
> I think this change is already included for next version of CalculiX. The feature is on the closed pull requests.

Unfortunately, those pull requests are closed but not merged.

---

<div class="post-metadata">

### Author: ![jlucas](https://avatars.discourse-cdn.com/v4/letter/j/b4bc9f/32.png) [@jlucas](https://calculix.discourse.group/u/jlucas)
#### Post date: [June 19, 2023, 11:51am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/6 "2023-06-19T11:51:18Z")

</div>

Hi,

Ive noticed that the changes related with pardiso occ as proposed by viktorkemp were not commited on the main branch, so it seams not taken yet to next version.

 ![image](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/4/4d2d3a6a9003f05a2cad451abce770d768943ab6.png)

(Also the development version seams also not ready to use.)

To have the feature you can replace the pardiso.c file as given by viktorkemp and recompile the source code (ccx\_2.20 for example).

> <https://github.com/victorkemp/CalculiX/commit/f63d1c3b345918dbf653b65621dd28a6c39cc9dc>

i am testing it now, first impression seams to work fine.

---

<div class="post-metadata">

### Author: ![jlucas](https://avatars.discourse-cdn.com/v4/letter/j/b4bc9f/32.png) [@jlucas](https://calculix.discourse.group/u/jlucas)
#### Post date: [June 19, 2023, 5:54pm UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/7 "2023-06-19T17:54:08Z")

</div>

Hello,

Maybe someone with more insight could help to check if iparm options inside the the function on line 39

```auto
/* Added by Victor Kemp 2022-11-18 to enable Out-Of-Core (OOC) mode. */
void initialize_iparm(ITG *symmetryflag){
```

make any sense. Function call is then at line 106.

The iparm table can be found here:

> **[pardiso iparm Parameter](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2023-0/pardiso-iparm-parameter.html)**

---

<div class="post-metadata">

### Author: ![arnoprobek](https://avatars.discourse-cdn.com/v4/letter/a/ecc23a/32.png) [@arnoprobek](https://calculix.discourse.group/u/arnoprobek)
#### Post date: [June 21, 2023, 8:12am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/8 "2023-06-21T08:12:07Z")

</div>

Hello jlucas,

i would recommend you to use the function pardisoinit and then to adjust the iparm-values you want to.

Here you can find all information about mkl pardiso:

[https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2023-0/onemkl-pardiso-parallel-direct-sparse-solver-iface.html](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2023-0/onemkl-pardiso-parallel-direct-sparse-solver-iface.html)

---

<div class="post-metadata">

### Author: ![lastsolidbender](https://avatars.discourse-cdn.com/v4/letter/l/f0a364/32.png) [@lastsolidbender](https://calculix.discourse.group/u/lastsolidbender)
#### Post date: [June 10, 2024, 11:45am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/9 "2024-06-10T11:45:45Z")

</div>

HI, I’m an absolute noob at this, but say I have am using prepomax, do I go in the calculix folder and replace it with everything as mentioned here?

---

<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: [June 10, 2024, 4:43pm UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/10 "2024-06-10T16:43:58Z")

</div>

Once you have the executable and all the necessary libraries ready, you can put them in the Solver catalog of PrePoMax and select the executable file in Tools → Settings → Calculix.

---

<div class="post-metadata">

### Author: ![lastsolidbender](https://avatars.discourse-cdn.com/v4/letter/l/f0a364/32.png) [@lastsolidbender](https://calculix.discourse.group/u/lastsolidbender)
#### Post date: [June 10, 2024, 6:36pm UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/11 "2024-06-10T18:36:35Z")

</div>

Hi, so all I basically have to do is, add these files to the ccx\_dynamic folder of prepomax, set the environment variables and calculix, and then voila?

---

<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: [June 10, 2024, 6:55pm UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/12 "2024-06-10T18:55:36Z")

</div>

To the Solver folder, yes (and select the new .exe file in the settings unless the old one was replaced and the new one has the same name), assuming that you have the executable ready (you may have to recompile it).

---

<div class="post-metadata">

### Author: ![sychen](https://avatars.discourse-cdn.com/v4/letter/s/b4bc9f/32.png) [@sychen](https://calculix.discourse.group/u/sychen)
#### Post date: [December 18, 2025, 6:51am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/13 "2025-12-18T06:51:53Z")

</div>

Hello,

is there anywhere that I can download the compiled version with OUT-OF-CORE enabled ? Or I just have compile it all by myself… ?

---

<div class="post-metadata">

### Author: ![jbr](https://avatars.discourse-cdn.com/v4/letter/j/ecccb3/32.png) [@jbr](https://calculix.discourse.group/u/jbr)
#### Post date: [December 19, 2025, 10:11pm UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/14 "2025-12-19T22:11:04Z")

</div>

> [@sychen](#):
>
> Or I just have compile it all by myself… ?

Compile it by yourself because the flag requires a hard-coded value- if I remember correctly. Check the Intel documentation to see if they allow a flag at runtime.

[https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-fortran/2023-0/pardiso-iparm-parameter.html#IPARM63](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-fortran/2023-0/pardiso-iparm-parameter.html#IPARM63)

---

<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: [December 30, 2025, 11:21am UTC](https://calculix.discourse.group/t/calculix-with-pardiso-out-of-core-mode/1676/15 "2025-12-30T11:21:28Z")

</div>

It can be set at runtime by having CCX check for the presence of the environment variable(s).

A reason not to distribute the binary is that the CCX’s GPL license doesn’t allow that because it would require making the source code for MKL available too.
