Guest User

Untitled

a guest
Mar 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <assert.h>
  5. #include <openacc.h>
  6. #include<time.h>
  7. #include <string.h>
  8. #include <malloc.h>
  9.  
  10. #define NX 4
  11. #define NY 4
  12. #define NZ 4
  13. int main(void)
  14. {
  15. int i, j,p, k,m;
  16. static double A[NX][NY][NZ]={0.} ,B[NX][NY][NZ]={0.},C[NX][NY][NZ]={0.},D[NX][NY][NZ]={0.};
  17. FILE *file;
  18. file = fopen("B-and-A.csv", "w");
  19. #pragma acc data copyin(C,D),copy(A,B)
  20. {
  21. for (p = 0; p <=5; p++) {
  22. #pragma acc kernels
  23. for ( i = 1; i < NX - 1; i++ ) {
  24. for ( j = 0; j < NY - 1; j++ ) {
  25. for ( k = 0; k < NZ - 1; k++ ) {
  26. A[i][j][k] = A[i][j][k] + 1.*( B[i][j+1][k] + D[i][j][k] );
  27. }
  28. }
  29. }
  30. #pragma acc kernels
  31. for ( i = 1; i < NX - 1; i++ ) {
  32. for ( j = 0; j < NY - 1; j++ ) {
  33. for ( k = 0; k < NZ - 1; k++ ) {
  34. B[i][j][k] = B[i][j][k]+ 1.*( A[i][j+1][k] + D[i][j][k] );
  35. }
  36. }
  37. }
  38.  
  39. for (m = 0; m < NZ - 1; m++) {
  40. A[0][m][m] = -25. ;
  41. A[2][m][m] = 52. ;
  42. B[0][m][m] = 15. ;
  43. B[2][m][m] = -55. ;
  44. }
  45. #pragma acc update self(B)
  46. fprintf(file,"%en",B[2][2][2]);
  47. printf("%en",B[2][2][2]);
  48. }
  49. }
  50. fclose(file);
  51. }
Add Comment
Please, Sign In to add comment