# CalculiX and PaStiX solver Windows version

**URL:** <https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130>\
**Category:** Getting started\
**Created:** [August 18, 2020, 7:33am UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130 "2020-08-18T07:33:42Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![alexbrown](https://avatars.discourse-cdn.com/v4/letter/a/848f3c/32.png) [@alexbrown](https://calculix.discourse.group/u/alexbrown)\
**Post date:** [December 15, 2023, 4:37pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/63 "2023-12-15T16:37:25Z")

</div>

Hi Rafal,

I try to compile calculix using mingw64 & intel pardiso, but there is undefined reference for pardiso.

Do you have working Makefile for mingw64 & intel pardiso?

---

<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:** [December 26, 2023, 10:33am UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/64 "2023-12-26T10:33:53Z")

</div>

Modify Makefile\_MT (example), like:

add:

```auto
CFLAGS = -Wall -O2 -fopenmp -I ../../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DUSE_MT=1 -I$(MKL)/include

```

`MKL=/usr/local/mkl/2023.0.0`

```auto
LIBS = \
       $(MKL)/lib/intel64/mkl_rt.lib \
       $(DIR)/MT/src/spoolesMT.a \
       $(DIR)/spooles.a \
       ../../../ARPACK/libarpack_INTEL.a \
       -lpthread -lm

```

CalculiX PARDISO + exdous v2.20 ([GitHub - gustafson/CalculiX at exodus](https://github.com/gustafson/CalculiX/tree/exodus)):  
[Dropbox - ccx\_2.20\_exo\_pardiso.7z - Simplify your life](https://www.dropbox.com/scl/fi/wa7didf7mmaurcmse5n1w/ccx_2.20_exo_pardiso.7z?rlkey=ng2cqvovfxlbn2gykk5jjtrqi&dl=0)

---

<div class="post-metadata">

**Author:** ![Pratik](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@Pratik](https://calculix.discourse.group/u/Pratik)\
**Post date:** [April 18, 2024, 11:13am UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/65 "2024-04-18T11:13:39Z")

</div>

Hi @rafal.brzegowy , are you able to use successfully PastiX with CUDA? if do so, can you share the executable with us? if not used, then is it possible to use CUDA with pastiX on Windows? and can you guide me on this?

Thanks in Advance!

---

<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:** [April 22, 2024, 6:11am UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/66 "2024-04-22T06:11:06Z")

</div>

Unfortunately no, the environment I use (msys2/mingw) does not have an nvcc compiler (also clang generates a lot of errors).

[https://llvm.org/docs/CompileCudaWithLLVM.html](https://llvm.org/docs/CompileCudaWithLLVM.html)

---

<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:** [September 27, 2024, 3:45pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/67 "2024-09-27T15:45:18Z")

</div>

ccx 2.22 + exodus + PARDISO + i8

[https://www.dropbox.com/scl/fi/pz3rbbtctm1sott0iolj2/ccx-2.22-exodus-int32\_int64.7z?rlkey=asvn3jslais733s9sdczyapmu&st=rsq2sbaj&dl=0](https://www.dropbox.com/scl/fi/pz3rbbtctm1sott0iolj2/ccx-2.22-exodus-int32_int64.7z?rlkey=asvn3jslais733s9sdczyapmu&st=rsq2sbaj&dl=0)

---

<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:** [September 27, 2024, 7:41pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/68 "2024-09-27T19:41:14Z")

</div>

Thank you @rafal.brzegowy !!

---

<div class="post-metadata">

**Author:** ![teofil75](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/teofil75/32/3276_2.png) [@teofil75](https://calculix.discourse.group/u/teofil75)\
**Post date:** [October 9, 2024, 6:52am UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/69 "2024-10-09T06:52:35Z")

</div>

Hello Mr. Brzegowy,

I was wondering if your CCX 2.17 version using PaStiX has the GPU CUDA library linked, and if so, how can I test it? How can I run an example test? Are there any environment variables that need to be set?

---

<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:** [October 9, 2024, 8:04am UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/70 "2024-10-09T08:04:05Z")

</div>

This version base on cudaless (no cuda): [GitHub - Kabbone/PaStiX4CalculiX at cudaless](https://github.com/Kabbone/PaStiX4CalculiX/tree/cudaless)

---

<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:** [October 23, 2024, 2:46pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/71 "2024-10-23T14:46:44Z")

</div>

Test version ccx 2.22 base on PaStiX 6.4.0 (raw, Windows, no CUDA):  
[https://www.dropbox.com/scl/fi/xz9leyv99uc0ixdveu432/ccx\_2.22\_pastix\_6.4.0.rar?rlkey=4t8iocv4mzpfkc45z2d8nxvmt&st=4z3qs5d2&dl=0](https://www.dropbox.com/scl/fi/xz9leyv99uc0ixdveu432/ccx_2.22_pastix_6.4.0.rar?rlkey=4t8iocv4mzpfkc45z2d8nxvmt&st=4z3qs5d2&dl=0)

pastix.c from:

> **[GitHub - Kabbone/CalculiX at pastix-6.4.0](https://github.com/Kabbone/CalculiX/tree/pastix-6.4.0)**
>
> pastix-6.4.0

---

<div class="post-metadata">

**Author:** ![teofil75](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/teofil75/32/3276_2.png) [@teofil75](https://calculix.discourse.group/u/teofil75)\
**Post date:** [October 29, 2024, 6:01pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/72 "2024-10-29T18:01:05Z")

</div>

Thank you very much for all your appreciated work on compiling CCX with the Pastix solver. I wonder if it would be possible to compile it also on Ubuntu 22.04 Linux, and if it could be possible to use CUDA GPU as well.  
Thanks in advance

p.s.  
when I try to compile PaStiX4CalculiX kabbone version always obtain:  
CMake Error at cmake\_modules/morse\_cmake/modules/find/LibrariesAbsolutePath.cmake:59 (message):  
Dependency of CUDA\_LIBRARIES ‘Threads::Threads’ NOT FOUND  
Call Stack (most recent call first):  
cmake\_modules/morse\_cmake/modules/find/FindPARSEC.cmake:211 (libraries\_absolute\_path)  
CMakeLists.txt:365 (find\_package)

---

<div class="post-metadata">

**Author:** ![rsmith](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/rsmith/32/1684_2.png) [@rsmith](https://calculix.discourse.group/u/rsmith)\
**Post date:** [October 30, 2024, 9:05am UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/73 "2024-10-30T09:05:29Z")

</div>

> [@teofil75](#):
>
> I wonder if it would be possible to compile it also on Ubuntu 22.04 Linux, and if it could be possible to use CUDA GPU as well.

Maybe [How to Install CUDA on Ubuntu 22.04](https://www.cherryservers.com/blog/install-cuda-ubuntu) is of use to you.

The Kabbone repositories are mostly useful for those that don’t have CUDA capable GPU’s. If you have CUDA installed and working, try the [original PastiX4CalculiX](https://github.com/Dhondtguido/PaStiX4CalculiX). (Note that this uses an older version of PastiX, which requires Python 2 to build; the scripts used in the build fail with Python 3.)

---

<div class="post-metadata">

**Author:** ![teofil75](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/teofil75/32/3276_2.png) [@teofil75](https://calculix.discourse.group/u/teofil75)\
**Post date:** [October 30, 2024, 6:35pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/74 "2024-10-30T18:35:49Z")

</div>

thank you for clarification, but every time I run cmake I obtain this error:  
…  
…  
– Looking for hwloc\_topology\_init - found  
CMake Error at cmake\_modules/morse\_cmake/modules/find/LibrariesAbsolutePath.cmake:59 (message):  
Dependency of CUDA\_LIBRARIES ‘Threads::Threads’ NOT FOUND  
Call Stack (most recent call first):  
cmake\_modules/morse\_cmake/modules/find/FindPARSEC.cmake:211 (libraries\_absolute\_path)  
CMakeLists.txt:365 (find\_package)

– Configuring incomplete, errors occurred!  
about Threads::Threads. But I don’t understand if this error is about CUDA or PaRSEC. Do you have some advice?

---

<div class="post-metadata">

**Author:** ![rsmith](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/rsmith/32/1684_2.png) [@rsmith](https://calculix.discourse.group/u/rsmith)\
**Post date:** [October 30, 2024, 7:52pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/75 "2024-10-30T19:52:03Z")

</div>

It looks like a CUDA error. The file `FindPARSEC.cmake` is _installed_ by `PaRSEC`, I believe.

There is an option of building PaRSEC without thread support;  
`-DPARSEC_DIST_THREAD=OFF`. Maybe that helps?

---

<div class="post-metadata">

**Author:** ![teofil75](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/teofil75/32/3276_2.png) [@teofil75](https://calculix.discourse.group/u/teofil75)\
**Post date:** [November 24, 2024, 8:40pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/76 "2024-11-24T20:40:15Z")

</div>

Finally I was able to compile and install the PaStiX solver for CalculiX v 2.22 on native Linux UBUNTU 24.04  
I performed a lot of tests and compared the process time for SPOOLES, Paradiso from MKL oneAPI and PaStiX. I compared also the same solver on windows11 from Rafal user and my compiled version on Linux.  
The Linux solver is always twice faster than the windows corrispondant version.  
Using the Rafal executables, PaStiX is comparable but a little much faster than Pardiso. On Linux: PaStiX takes twice memory respect Pardiso, moreover Pardiso is faster than PaStiX.  
Finally, I compiled a ccx version using the new PANUA solver. It is slower than Pardiso MKL too!!!  
As the last step I need to compile PaStiX with cuda support, but unfortunately I always get the same error: cuda THREADS::THREADS error. It seems there is some issiues when I use both PaRSEC with CUDA

---

<div class="post-metadata">

**Author:** ![c3d10](https://avatars.discourse-cdn.com/v4/letter/c/edb3f5/32.png) [@c3d10](https://calculix.discourse.group/u/c3d10)\
**Post date:** [December 2, 2024, 6:48pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/77 "2024-12-02T18:48:14Z")

</div>

I’m curious about the Panua solver - how much does it cost? And how much slower is it than MKL Pardiso? I was expecting it to be significantly faster based on the marketing materials on their website…

---

<div class="post-metadata">

**Author:** ![rsmith](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/rsmith/32/1684_2.png) [@rsmith](https://calculix.discourse.group/u/rsmith)\
**Post date:** [December 2, 2024, 8:13pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/78 "2024-12-02T20:13:32Z")

</div>

> [@teofil75](#):
>
> The Linux solver is always twice faster than the windows corrispondant version.

This might be filesystem related. It is well known that Linux performs better here than ms-windows.

> [@teofil75](#):
>
> On Linux: PaStiX takes twice memory respect Pardiso, moreover Pardiso is faster than PaStiX.

If you want to properly compare versions, they should be built the same as far as possible; e.g. both using 4-byte integers.

How many different problems did you use to make the comparison?  
In the tests that I did, PaStiX is not always faster than SPOOLES.

---

<div class="post-metadata">

**Author:** ![teofil75](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/teofil75/32/3276_2.png) [@teofil75](https://calculix.discourse.group/u/teofil75)\
**Post date:** [December 3, 2024, 8:50am UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/79 "2024-12-03T08:50:06Z")

</div>

The PANUA solver is very expensive, costing 8,000€/year. Moreover, something strange happened: the solver ran properly, but no FRD file was generated.

---

<div class="post-metadata">

**Author:** ![teofil75](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/teofil75/32/3276_2.png) [@teofil75](https://calculix.discourse.group/u/teofil75)\
**Post date:** [December 13, 2024, 9:21pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/80 "2024-12-13T21:21:51Z")

</div>

Finally, I was able to successfully compile CalculiX v2.22 with the PaStiX solver (the modified version PaStiX4CalculiX v6.0.1) including CUDA support v12.4 and PaRSEC. I tested it on an NVIDIA RTX 6000 ADA with 48GB of memory. Unfortunately, the results were disappointing: while the nvidia-smi tool recognized the ccx executable, the GPU utilization percentage remained low, as did the power consumption.  
I set the correct PaStiX env variable but I cannot understand the performancies.  
Does anyone has any advice?

Alex

---

<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:** [December 13, 2024, 11:45pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/81 "2024-12-13T23:45:11Z")

</div>

I seem to remember a paper a dozen or more years ago that broke down the performance issues and choke points. I seem to remember that whether cuda and a gpu help or not depends on the relative performance between the CPU and GPU. The GPU is hindered by the GPU memory size, geometry, DP speed, and communications speed with memory. The CPU is hindered by DP speed, and memory size and throughput. The paper reports testing about 7 problems, only some of which had a significant speed inprovement with a GPU. In your case your GPU has poor performance with DP64 which runs at 1/64 the throughput of HP32. The relative performance WRT the CPU might be especially bad if your CPU is relatively good with more memory channels and avx512 (which speeds FP64 a lot by doing several FP64 calculations at a time.). In general Nvidia consumer grade cards may have the same processor as their Higher performance in FP 64 cards, but the card is deliberately crippled to a lower FP64 multiplier. AMD uses a higher divisor for their consumer grade cards, but no CUDA. Best bet is a used Nvidia A100 80GB or something similar like a A30, V100, or a K80. These are all similar in FP64 performance, but graphics and AI performance falls as you go down this list. K80’s don’t do graphics at all. What duffers like us need is a HPC guru to do for AMD products (with their higher FP64 in consumer products) what we have for Nvidia CUDA cards as far as a usable solver to link to callculix.

---

<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:** [April 30, 2026, 2:09pm UTC](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130/82 "2026-04-30T14:09:08Z")

</div>

Info CalculiX and PaStiX 6.4.0:

> **[GitHub - Kabbone/PaStiX4CalculiX at bcsc\_reuse](https://github.com/Kabbone/PaStiX4CalculiX/tree/bcsc_reuse)**
>
> bcsc\_reuse

and commits: [5415746](https://github.com/Dhondtguido/CalculiX/pull/111/commits/54157464ecbe34d29e5e7bc649601eec8a1523be) & [c071c04](https://github.com/Dhondtguido/CalculiX/pull/111/commits/c071c045f42f44877995358750f4b4ea92177df2)

Before commits (my quick benchmark, Total CalculiX Time): 280,18s  
After: 125,46s

[Previous page](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130.md?page=3)

[Next page](https://calculix.discourse.group/t/calculix-and-pastix-solver-windows-version/130.md?page=5)
