OpenMP-Examples/devices/sources/target_unstructured_data.1.c
2022-11-04 09:35:42 -07:00

28 lines
487 B
C

/*
* @@name: target_unstructured_data.1
* @@type: C
* @@operation: compile
* @@expect: success
* @@version: omp_4.5
*/
#include <stdlib.h>
typedef struct {
double *A;
int N;
} Matrix;
void init_matrix(Matrix *mat, int n)
{
mat->A = (double *)malloc(n*sizeof(double));
mat->N = n;
#pragma omp target enter data map(alloc:mat->A[:n])
}
void free_matrix(Matrix *mat)
{
#pragma omp target exit data map(delete:mat->A[:mat->N])
mat->N = 0;
free(mat->A);
mat->A = NULL;
}