diff options
| author | Tor Aamodt <[email protected]> | 2010-10-01 08:55:28 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-10-01 08:55:28 -0800 |
| commit | 11b308e7363e937966b035b4891db32b4eece3bf (patch) | |
| tree | 50ca4c9ad6f163ac4acb2bf505e64dfebed66947 /benchmarks/CUDA/DG/src/MaxwellsDriver3d.c | |
| parent | bb820c116764d7a1b8e071137d32b74e7f34dd2f (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.c | 110 |
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); -} |
