CalculiX and PaStiX solver Windows version

Thank you
sorry for stupid question but parsec needs to be compiled with speciffic version / config?

i put calculix into spack to put leash on pkg but i get strange error:

Summary

In file included from /tmp/vdi-user/spack-stage/spack-stage-pastix4calculix-bcsc_reuse-zjzpayle6vcwhf3nleigipnfypb4fvck/spack-build-zjzpayl/sopalin/parsec/parsec_sgetrf.c:29:

/tmp/vdi-user/spack-stage/spack-stage-pastix4calculix-bcsc_reuse-zjzpayle6vcwhf3nleigipnfypb4fvck/spack-build-zjzpayl/sopalin/parsec/sgetrf_sp1dplus.h:38:3: error: unknown type name ‘assignment_t’
38 | assignment_t s;
| ^~~~~~~~~~~~
/tmp/vdi-user/spack-stage/spack-stage-pastix4calculix-bcsc_reuse-zjzpayle6vcwhf3nleigipnfypb4fvck/spack-build-zjzpayl/sopalin/parsec/sgetrf_sp1dplus.h:39:3: error: unknown type name ‘assignment_t’
39 | assignment_t bloknum;
| ^~~~~~~~~~~~
ect…

and now i am thinking it is because of spack or parsec or pastix

I don’t use parsec (optional starpu)

hmmm do you recommend starpu if i do not have graphics card?
by optional you mean that you are actually use starpu or pastix can be used with neither?

You don’t have to use Parsec or Starpu. Pastix has its own schedulers (“Seq”, “Static”, “Dyn”), and they’re even more efficient (and a pure Pastix will make building the package easier).

2 Likes

Thanks for the tip! I don’t have a GPU and PasTiX4CalculiX indeed works fine without it.

I’ve updated my CalculiX build recipe without CUDA accordingly.

2 Likes

after long try and error with ai help, it seems i failed to compile this branch
i am not sure whether i made some error i thing there is rather problem with code:

this is from ccx_2.23/src/pastix.c:

if(!globDoublePrecision){ NNEW(buffer,float,*nrhs**neq); #pragma omp parallel for for(i = 0; i < (*nrhs) * (*neq); i++){ buffer[i] = (float) x[i]; } rc = pastix_task_solve( pastix_data, *nrhs, buffer, spm->n ); #pragma omp parallel for for(i = 0; i < (*nrhs) * (*neq); i++){ x[i] = (double) buffer[i]; } SFREE(buffer); buffer = NULL; } else{ rc = pastix_task_solve( pastix_data, *nrhs, x, spm->n ); }

and this is output form pastix:

vdi-user@vdidesktop:~/spack/opt/spack/linux-icelake/pastix4calculix-bcsc_reuse-2wc44zn22m75m7wokqtoffluyac5l4gz$ grep -R -n -A8 -B2 “pastix_task_solve” “./include” ./include/pastix.h-90-int pastix_task_numfact( pastix_data_t *pastix_data, ./include/pastix.h-91- spmatrix_t *spm ); ./include/pastix.h:92:int pastix_task_solve ( pastix_data_t *pastix_data, ./include/pastix.h-93- pastix_int_t m, ./include/pastix.h-94- pastix_int_t nrhs, ./include/pastix.h-95- void *B, ./include/pastix.h-96- pastix_int_t ldb ); ./include/pastix.h-97-int pastix_task_refine ( pastix_data_t *pastix_data, ./include/pastix.h-98- pastix_int_t n, ./include/pastix.h-99- pastix_int_t nrhs, ./include/pastix.h-100- void *B, – ./include/pastix.h-102- void *X, ./include/pastix.h-103- pastix_int_t ldx ); ./include/pastix.h:104:int pastix_task_solve_and_refine ( pastix_data_t *pastix_data, ./include/pastix.h-105- pastix_int_t n, ./include/pastix.h-106- pastix_int_t nrhs, ./include/pastix.h-107- void *B, ./include/pastix.h-108- pastix_int_t ldb, ./include/pastix.h-109- void *X, ./include/pastix.h-110- pastix_int_t ldx ); ./include/pastix.h-111- ./include/pastix.h-112-/*

full log:

well
i am going to try rsmith code :wink: