9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-30 15:15:38 +01:00

Removed IPP dependency with intel using C quicksort

This commit is contained in:
Anthony Scemama 2022-05-01 14:32:30 +02:00
parent 7cd6b13805
commit f168b885db
17 changed files with 70 additions and 70 deletions

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : mpiifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL -DSET_NESTED

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : mpiifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : mpiifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL -DSET_NESTED

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=64 -DINTEL -DSET_NESTED

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DINTEL

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : mpiifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : mpiifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DINTEL

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DINTEL

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DINTEL

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : mpiifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL

View File

@ -7,7 +7,7 @@
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=64 -DINTEL

View File

@ -65,7 +65,7 @@ function run_stoch() {
@test "H2O2" { # 12.9214s
qp set_file h2o2.ezfio
qp set_mo_class --core="[1-2]" --act="[3-24]" --del="[25-38]"
run -151.005848404095 1.e-3 100000
run -151.005848404095 2.e-3 100000
}
@test "HBO" { # 13.3144s

View File

@ -9,14 +9,14 @@ struct int16_t_comp {
int compare_int16_t( const void * l, const void * r )
{
const struct int16_t_comp * restrict _l= l;
const struct int16_t_comp * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const int16_t * restrict _l= l;
const int16_t * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_int16_t(int16_t* A_in, int32_t* iorder, int32_t isize) {
void qsort_int16_t(int16_t* restrict A_in, int32_t* restrict iorder, int32_t isize) {
struct int16_t_comp* A = malloc(isize * sizeof(struct int16_t_comp));
if (A == NULL) return;
@ -46,14 +46,14 @@ struct int16_t_comp_big {
int compare_int16_t_big( const void * l, const void * r )
{
const struct int16_t_comp_big * restrict _l= l;
const struct int16_t_comp_big * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const int16_t * restrict _l= l;
const int16_t * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_int16_t_big(int16_t* A_in, int64_t* iorder, int64_t isize) {
void qsort_int16_t_big(int16_t* restrict A_in, int64_t* restrict iorder, int64_t isize) {
struct int16_t_comp_big* A = malloc(isize * sizeof(struct int16_t_comp_big));
if (A == NULL) return;
@ -83,14 +83,14 @@ struct int32_t_comp {
int compare_int32_t( const void * l, const void * r )
{
const struct int32_t_comp * restrict _l= l;
const struct int32_t_comp * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const int32_t * restrict _l= l;
const int32_t * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_int32_t(int32_t* A_in, int32_t* iorder, int32_t isize) {
void qsort_int32_t(int32_t* restrict A_in, int32_t* restrict iorder, int32_t isize) {
struct int32_t_comp* A = malloc(isize * sizeof(struct int32_t_comp));
if (A == NULL) return;
@ -120,14 +120,14 @@ struct int32_t_comp_big {
int compare_int32_t_big( const void * l, const void * r )
{
const struct int32_t_comp_big * restrict _l= l;
const struct int32_t_comp_big * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const int32_t * restrict _l= l;
const int32_t * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_int32_t_big(int32_t* A_in, int64_t* iorder, int64_t isize) {
void qsort_int32_t_big(int32_t* restrict A_in, int64_t* restrict iorder, int64_t isize) {
struct int32_t_comp_big* A = malloc(isize * sizeof(struct int32_t_comp_big));
if (A == NULL) return;
@ -157,14 +157,14 @@ struct int64_t_comp {
int compare_int64_t( const void * l, const void * r )
{
const struct int64_t_comp * restrict _l= l;
const struct int64_t_comp * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const int64_t * restrict _l= l;
const int64_t * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_int64_t(int64_t* A_in, int32_t* iorder, int32_t isize) {
void qsort_int64_t(int64_t* restrict A_in, int32_t* restrict iorder, int32_t isize) {
struct int64_t_comp* A = malloc(isize * sizeof(struct int64_t_comp));
if (A == NULL) return;
@ -194,14 +194,14 @@ struct int64_t_comp_big {
int compare_int64_t_big( const void * l, const void * r )
{
const struct int64_t_comp_big * restrict _l= l;
const struct int64_t_comp_big * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const int64_t * restrict _l= l;
const int64_t * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_int64_t_big(int64_t* A_in, int64_t* iorder, int64_t isize) {
void qsort_int64_t_big(int64_t* restrict A_in, int64_t* restrict iorder, int64_t isize) {
struct int64_t_comp_big* A = malloc(isize * sizeof(struct int64_t_comp_big));
if (A == NULL) return;
@ -231,14 +231,14 @@ struct double_comp {
int compare_double( const void * l, const void * r )
{
const struct double_comp * restrict _l= l;
const struct double_comp * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const double * restrict _l= l;
const double * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_double(double* A_in, int32_t* iorder, int32_t isize) {
void qsort_double(double* restrict A_in, int32_t* restrict iorder, int32_t isize) {
struct double_comp* A = malloc(isize * sizeof(struct double_comp));
if (A == NULL) return;
@ -268,14 +268,14 @@ struct double_comp_big {
int compare_double_big( const void * l, const void * r )
{
const struct double_comp_big * restrict _l= l;
const struct double_comp_big * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const double * restrict _l= l;
const double * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_double_big(double* A_in, int64_t* iorder, int64_t isize) {
void qsort_double_big(double* restrict A_in, int64_t* restrict iorder, int64_t isize) {
struct double_comp_big* A = malloc(isize * sizeof(struct double_comp_big));
if (A == NULL) return;
@ -305,14 +305,14 @@ struct float_comp {
int compare_float( const void * l, const void * r )
{
const struct float_comp * restrict _l= l;
const struct float_comp * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const float * restrict _l= l;
const float * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_float(float* A_in, int32_t* iorder, int32_t isize) {
void qsort_float(float* restrict A_in, int32_t* restrict iorder, int32_t isize) {
struct float_comp* A = malloc(isize * sizeof(struct float_comp));
if (A == NULL) return;
@ -342,14 +342,14 @@ struct float_comp_big {
int compare_float_big( const void * l, const void * r )
{
const struct float_comp_big * restrict _l= l;
const struct float_comp_big * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const float * restrict _l= l;
const float * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_float_big(float* A_in, int64_t* iorder, int64_t isize) {
void qsort_float_big(float* restrict A_in, int64_t* restrict iorder, int64_t isize) {
struct float_comp_big* A = malloc(isize * sizeof(struct float_comp_big));
if (A == NULL) return;

View File

@ -11,14 +11,14 @@ struct TYPE_comp_big {
int compare_TYPE_big( const void * l, const void * r )
{
const struct TYPE_comp_big * restrict _l= l;
const struct TYPE_comp_big * restrict _r= r;
if( _l->x > _r->x ) return 1;
if( _l->x < _r->x ) return -1;
const TYPE * restrict _l= l;
const TYPE * restrict _r= r;
if( *_l > *_r ) return 1;
if( *_l < *_r ) return -1;
return 0;
}
void qsort_TYPE_big(TYPE* A_in, int32_t* iorder, int32_t isize) {
void qsort_TYPE_big(TYPE* restrict A_in, int32_t* restrict iorder, int32_t isize) {
struct TYPE_comp_big* A = malloc(isize * sizeof(struct TYPE_comp_big));
if (A == NULL) return;