Compiling procedure for PaStiX:
This description is directly extracted from the ccx README file:
"Finally, CalculiX has recently been linked with PaStiX. PaStiX is a very fast freeware solver able to use the Graphical Processing Unit (GPU). Benchmark tests have revealed a speed-up of a factor up to 8 for static calculations with contact. This, however, assumes that you have a hight-end Graphical card with at least 32 GB of memory on it. Still, even without using the GPU speed-ups of up to a factor of 4 were observed. This applies to medium to big models in the range between 1 and 5 million degrees of freedom."
A good starting point will be the Peter Wauligmann Master's Thesis:
If you are interested, it is avaible on the CalculiX DISCOURSE Group.
In the CalculiX source folder, the shell script files to compile all the dependencies are already available:
cd /usr/local/ClaculiX/ccx_2.22/src
ls make_*.sh
the output should be:
-rwxr-x--- 1 alex users 109 Jul 31 2022 make_hwloc.sh
-rwxr-x--- 1 alex users 668 Jul 31 2022 make_parsec.sh
-rwxr-x--- 1 alex users 662 Jul 31 2022 make_pastix.sh
-rwxr-x--- 1 alex users 221 Jul 31 2022 make_scotch.sh
In comparison the other solvers implemented before, PaStiX need a strictly dependancy and some minor changes to the standard procedure are often required.
To use PaStiX you need to compile these projects in the exact order:
- BLAS
- HWLOC
- the model partitioner SCOTCH
- the model partitioner METIS (optional)
- the scheduler StarPU (optional)
- the scheduler PaRSEC (optional but highly required)
- the PaStiX solver.
You need to compile these libraries in version that supports 8-byte integers in the above order (the requirement for 8-byte integers comes from the fact that some of the above libraries automatically assume the use of 8 bytes for an integer). In the CalculiX source directory shell scripts *.sh are provided to do the compiling and linking job. They assume a directory tree in the form:
/usr/local
├── CalculiX
│ └── ccx_2.22
│ └── src
├── OpenBLAS_i8
├── PaStiX
│ ├── hwloc_i8
│ ├── starpu_i8
│ ├── parsec_i8
│ ├── scotch_i8
│ └── PaStiX4CalculiX
└── cuda-12.4
Moreover, if you want to use GPU you need to install the CUDA library.
Back to CalculiX compiling procedure