Exemplo n.º 1
0
for stepCounter in range(totalSteps):
  if stepCounter%1==0 and pId==0: printProgressTime( stepCounter, totalSteps,  computeTime + transferTime + saveTime )
  if stepCounter%4==0:
    #Save positions
    start.record()
    posHD.create_dataset( '{0:03}'.format(stepCounter/4), data=posSend_h )
    end.record(), end.synchronize()
    saveTime += start.time_till(end)*1e-3
  timeStep()
  
 
if pId == 0:
  end.record(), end.synchronize()
  totalTimeReal = startT.time_till(end)*1e-3
  totalTime = computeTime + transferTime + saveTime
  h, m, s = timeSplit( totalTime )
  print '\n\nTotal time: {0}:{1:02}:{2:02} '.format( h, m, s )
  print 'Compute  time: {0} secs   {1:2.2f}%  '.format( int(computeTime), 100*computeTime/totalTime )
  print 'Transfer time: {0} secs   {1:2.2f}%  '.format( int(transferTime), 100*transferTime/totalTime )
  print 'Save time: {0} secs   {1:2.2f}%  '.format( int(saveTime), 100*saveTime/totalTime )
  print 'Dead time: {0:.3f} secs'.format( totalTimeReal-totalTime )
  print'\n'

######################################################################
#Clean and Finalize
MPIcomm.Barrier()
dFile.close()
#Terminate CUDA
cudaCtx.pop()
cudaCtx.detach() #delete it
#Terminate MPI
Exemplo n.º 2
0
print ' nSteps: {0} \n'.format( totalSteps )
print " Output: {0} \n".format( outDataFile )
start, end = cuda.Event(), cuda.Event()
for stepCounter in range(totalSteps):
  start.record()
  if stepCounter%1 == 0: printProgressTime( stepCounter, totalSteps,  runningTime )
  getEnergy( stepCounter, simulationTime, energyList )
  moveParticles( cudaPre(dt), posX_d, posY_d, posZ_d, velX_d, velY_d, velZ_d, accelX_d, accelY_d, accelZ_d )
  getAcccelKernel( np.int32(nParticles), GMass, np.int32(usingAnimation),
	      posX_d, posY_d, posZ_d, posX_d, posY_d, posZ_d,
	      velX_d, velY_d, velZ_d, accelX_d, accelY_d, accelZ_d,
	      cudaPre( dt ), cudaPre(epsilon), np.int32(1),
	      np.intp(0),   grid=grid, block=block )
  simulationTime += dt
  end.record()
  end.synchronize()
  runningTime += start.time_till(end)*1e-3
  
  
  
h, m, s = timeSplit( runningTime )
print '\n\nTotal time: {0}:{1:02}:{2:02} '.format( h, m, s )

#Write energy
energyList = np.array( energyList )
energyHD.create_dataset( 'steps', data= energyList[:,0], compression='lzf' )
energyHD.create_dataset( 'time', data= energyList[:,1], compression='lzf' )
energyHD.create_dataset( 'values', data= energyList[:,2], compression='lzf' )

outFile.close()