# PaStiX diverges on Linux

**URL:** <https://calculix.discourse.group/t/pastix-diverges-on-linux/1039>\
**Category:** Uncategorized\
**Created:** [March 17, 2022, 5:53pm UTC](https://calculix.discourse.group/t/pastix-diverges-on-linux/1039 "2022-03-17T17:53:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ulli](https://avatars.discourse-cdn.com/v4/letter/u/f04885/32.png) [@ulli](https://calculix.discourse.group/u/ulli)\
**Post date:** [March 17, 2022, 5:53pm UTC](https://calculix.discourse.group/t/pastix-diverges-on-linux/1039/1 "2022-03-17T17:53:27Z")

</div>

Dear CalculiX users,

we are trying to get the PaStiX solver for CalculiX to work under Linux. We have compiled PaStiX under Ubuntu 20.04 for this purpose. Pastix also runs, but the solver crashes in the first iteration. I have calculated the same case with the version provided by Rafal (same CaluculiX 2.16 and same PaStiX version) and the case runs. In the Linux version, the flow of the solution seems to have changed:  
While in the Windows version:

> - iteration 50 :  
> total iteration time 0.0102  
> error 8.4295e-07  
> Time for refinement: 0.4675
> 
> * * *
> 
> CSC Conversion Time: 0.008051  
> Init Time: 0.000117  
> Factorize Time: 0.041518  
> Solve Time: 0.473739  
> Clean up Time: 0.000000

* * *

**The Linux version then outputs:**

> - iteration 50 :  
> total iteration time 0.0295  
> error 2.8446e-07  
> Time for refinement: 1.1590  
> Not reusing csc.  
> ±------------------------------------------------+
> 
> - 
> 
> ```
> PaStiX : Parallel Sparse matriX package +
> 
> ```
> 
> ±------------------------------------------------+  
> Version: 6.0.1  
> Schedulers:  
> sequential: Enabled  
> thread static: Started  
> thread dynamic: Disabled  
> PaRSEC: Started  
> StarPU: Disabled  
> Number of MPI processes: 1  
> Number of threads per process: 1  
> Number of GPUs: 0  
> MPI communication support: Disabled  
> Distribution level: 2D( 256)

The consequence seems to be that the solution diverges:  
**Linux:**

> Using up to 1 cpu(s) for the energy calculation.  
> average force= 11484.186711  
> time avg. forc= 11484.186711  
> largest residual force= 602620.839813 in node 1355 and dof 3  
> largest increment of disp= 8.271366e-03  
> largest correction to disp= 8.271366e-03 in node 145 and dof 3  
> **Windows**  
> Using up to 1 cpu(s) for the energy calculation.
> 
> average force= 1.435569  
> time avg. forc= 1.435569  
> largest residual force= 56.306643 in node 983 and dof 3  
> largest increment of disp= 1.365542e-05  
> largest correction to disp= 1.365542e-05 in node 81 and dof 3

Is there anything else that needs to be configured for the Linux version? Can someone put me on the right track here?

Many thanks

Ulrich

---

<div class="post-metadata">

**Author:** ![feacluster](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/feacluster/32/394_2.png) [@feacluster](https://calculix.discourse.group/u/feacluster)\
**Post date:** [March 20, 2022, 10:07pm UTC](https://calculix.discourse.group/t/pastix-diverges-on-linux/1039/2 "2022-03-20T22:07:48Z")

</div>

> [@ulli](#):
>
> Number of GPUs: 0

I found pastix took a lot longer than pardiso when running with older GPU ( Tesla K80 ). It’s quite tricky to get working so I kind of gave up on it when I saw little performance improvements with older GPU. Maybe I had some wrong settings … But I did chat with the developers and they kind of agreed. See:

> <https://github.com/Dhondtguido/PaStiX4CalculiX/issues/14>
>
> When running make\_pastix.sh, I am receiving the following error:
> 
> \`\`\`
> \-- Conf…iguring done
> \-- Generating done
> \-- Build files have been written to: /home/feacluster/PaStiX/pastix\_src/build
> sopalin/parsec/CMakeFiles/parsec\_headers\_tgt.dir/build.make:64: \*\*\* missing separator. Stop.
> make\[1\]: \*\*\* \[CMakeFiles/Makefile2:1717: sopalin/parsec/CMakeFiles/parsec\_headers\_tgt.dir/all\] Error 2
> make\[1\]: \*\*\* Waiting for unfinished jobs....
> CMakeFiles/bcsc\_headers\_tgt.dir/build.make:63: \*\*\* missing separator. Stop.
> make\[1\]: \*\*\* \[CMakeFiles/Makefile2:566: CMakeFiles/bcsc\_headers\_tgt.dir/all\] Error 2
> make: \*\*\* \[Makefile:141: all\] Error 2
> sopalin/parsec/CMakeFiles/parsec\_headers\_tgt.dir/build.make:64: \*\*\* missing separator. Stop.
> make\[1\]: \*\*\* \[CMakeFiles/Makefile2:1717: sopalin/parsec/CMakeFiles/parsec\_headers\_tgt.dir/all\] Error 2
> make: \*\*\* \[Makefile:141: all\] Error 2
> \`\`\`

---

<div class="post-metadata">

**Author:** ![ulli](https://avatars.discourse-cdn.com/v4/letter/u/f04885/32.png) [@ulli](https://calculix.discourse.group/u/ulli)\
**Post date:** [March 21, 2022, 4:21pm UTC](https://calculix.discourse.group/t/pastix-diverges-on-linux/1039/3 "2022-03-21T16:21:21Z")

</div>

Thank you for the information. We have been able to solve the problem with CalculiX 19. In ccx-16 we had problems wih PaStiX. I really hope we will see better speed-up. Our case is relatively small at the moment (about 40e3 equations and 1.5e6 nnz). But we are trying to solve this in FSI with OpenFOAM, can only use direct dynamic analysis and in some cases CalculiX takes 30-40 iterations to converge for one time step. In total we have to run approx. 60000 increments with 2-3 FSI iterations each. Hopefully for cases like this the speed-up by PaStiX is better.

---

<div class="post-metadata">

**Author:** ![feacluster](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/feacluster/32/394_2.png) [@feacluster](https://calculix.discourse.group/u/feacluster)\
**Post date:** [March 22, 2022, 1:23pm UTC](https://calculix.discourse.group/t/pastix-diverges-on-linux/1039/4 "2022-03-22T13:23:27Z")

</div>

40,000 equations should solve in a second with even Spooles 🙂 But if it is taking multiple iterations/increments then that is more a Calculix algorithm issue…
