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

35 lines
609 B
C

/*
* @@name: target_mapper.1
* @@type: C
* @@operation: run
* @@expect: success
* @@version: omp_5.0
*/
#include <stdlib.h>
#include <stdio.h>
#define N 100
typedef struct myvec{
size_t len;
double *data;
} myvec_t;
#pragma omp declare mapper(myvec_t v) \
map(v, v.data[0:v.len])
void init(myvec_t *s);
int main(){
myvec_t s;
s.data = (double *)calloc(N,sizeof(double));
s.len = N;
#pragma omp target
init(&s);
printf("s.data[%d]=%lf\n",N-1,s.data[N-1]); //s.data[99]=99.000000
}
void init(myvec_t *s)
{ for(size_t i=0; i<s->len; i++) s->data[i]=i; }