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
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()