summaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/DG/src/MaxwellsDriver3d.c
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-10-01 08:55:28 -0800
committerTor Aamodt <[email protected]>2010-10-01 08:55:28 -0800
commit11b308e7363e937966b035b4891db32b4eece3bf (patch)
tree50ca4c9ad6f163ac4acb2bf505e64dfebed66947 /benchmarks/CUDA/DG/src/MaxwellsDriver3d.c
parentbb820c116764d7a1b8e071137d32b74e7f34dd2f (diff)
integrating recent changes from fermi-test into fermi
(i'll use "fermi" for more disruptive changes to the pipeline model such as updating the MSHRs and getting rid of the warp tracker, ripping out DWF, etc...) [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7805]
Diffstat (limited to 'benchmarks/CUDA/DG/src/MaxwellsDriver3d.c')
-rw-r--r--benchmarks/CUDA/DG/src/MaxwellsDriver3d.c110
1 files changed, 0 insertions, 110 deletions
diff --git a/benchmarks/CUDA/DG/src/MaxwellsDriver3d.c b/benchmarks/CUDA/DG/src/MaxwellsDriver3d.c
deleted file mode 100644
index dd761c7..0000000
--- a/benchmarks/CUDA/DG/src/MaxwellsDriver3d.c
+++ /dev/null
@@ -1,110 +0,0 @@
-#include "mpi.h"
-#include "fem.h"
-
-main(int argc, char **argv){
-
- Mesh *mesh;
- int procid, nprocs, maxNv;
- int k,n, sk=0;
- double minEz, maxEz, gminEz, gmaxEz;
-
- /* initialize MPI */
- MPI_Init(&argc, &argv);
-
- /* assign gpu */
- MPI_Comm_rank(MPI_COMM_WORLD, &procid);
- MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
-
-#ifdef CUDA
- cudaSetDevice((procid+2)%4);
-#endif
-
- /* (parallel) read part of fem mesh from file */
- mesh = ReadMesh3d(argv[1]);
-
- /* perform load balancing */
- LoadBalance3d(mesh);
-
- /* find element-element connectivity */
- FacePair3d(mesh, &maxNv);
-
- /* perform start up */
- StartUp3d(mesh);
-
- /* field storage (double) */
- double *Hx = (double*) calloc(mesh->K*p_Np, sizeof(double));
- double *Hy = (double*) calloc(mesh->K*p_Np, sizeof(double));
- double *Hz = (double*) calloc(mesh->K*p_Np, sizeof(double));
- double *Ex = (double*) calloc(mesh->K*p_Np, sizeof(double));
- double *Ey = (double*) calloc(mesh->K*p_Np, sizeof(double));
- double *Ez = (double*) calloc(mesh->K*p_Np, sizeof(double));
-
- /* initial conditions */
- for(k=0;k<mesh->K;++k){
- for(n=0;n<p_Np;++n) {
- Hx[sk] = 0;
- Hy[sk] = 0;
- Hz[sk] = 0;
- Ex[sk] = 0;
- Ey[sk] = 0;
- Ez[sk] = cos(M_PI*mesh->x[k][n])*cos(M_PI*mesh->y[k][n])*cos(M_PI*mesh->z[k][n]);
- ++sk;
- }
- }
-
- double dt, gdt;
-
-#ifdef CUDA
- /* initialize GPU info */
- dt = InitGPU3d(mesh, p_Nfields);
-
- /* load data onto GPU */
- gpu_set_data3d(mesh->K, Hx, Hy, Hz, Ex, Ey, Ez);
-#else
- /* initialize GPU info */
- dt = InitCPU3d(mesh, p_Nfields);
-
- /* load data onto CPU float storage */
- cpu_set_data3d(mesh, Hx, Hy, Hz, Ex, Ey, Ez);
-#endif
-
- MPI_Allreduce(&dt, &gdt, 1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD);
-
- dt = .5*gdt/((p_N+1)*(p_N+1));
-
- if(mesh->procid==0)
- printf("dt = %f\n", dt);
-
- double FinalTime = .00050;
-
- /* solve */
- MaxwellsRun3d(mesh, FinalTime, dt);
-
-#ifdef CUDA
- /* unload data from GPU */
- gpu_get_data3d(mesh->K, Hx, Hy, Hz, Ex, Ey, Ez);
-#else
- cpu_get_data3d(mesh, Hx, Hy, Hz, Ex, Ey, Ez);
-#endif
-
- /* find maximum & minimum values for Ez */
- minEz=Ez[0], maxEz=Ez[0];
-
- for(n=0;n<mesh->K*p_Np;++n) {
- minEz = (minEz>Ez[n])?Ez[n]:minEz;
- maxEz = (maxEz<Ez[n])?Ez[n]:maxEz;
- printf("%e\n", Ez[n]);
- }
-
- MPI_Reduce(&minEz, &gminEz, 1, MPI_DOUBLE, MPI_MIN, 0, MPI_COMM_WORLD);
- MPI_Reduce(&maxEz, &gmaxEz, 1, MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD);
-
- if(procid==0)
- printf("t=%f Ez in [ %f, %f ] \n", FinalTime, gminEz, gmaxEz );
-
- /* nicely stop MPI */
- MPI_Finalize();
-
- /* end game */
- exit(1);
-}