def compileLLVMSuite(): ensureLLVMSuiteNewExists() excludes = list(tools.collectExcludes(os.path.join(_llvmSuiteDir, "configs/"))) print("Compiling LLVM Suite reference executables ", end='') tools.printProgress(tools.multicompileRefFolder(_llvmSuiteDir, _cacheDir, [tools.Tool.CLANG], ['-Iinclude'], excludes=excludes)) print("Compiling LLVM Suite with -O0 ", end='') tools.printProgress(tools.multicompileFolder(_llvmSuiteDir, _cacheDir, [tools.Tool.CLANG], ['-Iinclude'], [tools.Optimization.NONE], tools.ProgrammingLanguage.LLVMIR, excludes=excludes))
def compileShootoutSuite(): ensureShootoutsExist() excludes = tools.collectExcludePattern(os.path.join(_benchmarksgameSuiteDir, "configs/")) print("Compiling Shootout Suite reference executables ", end='') tools.printProgress(tools.multicompileRefFolder(_benchmarksgameSuiteDir, _cacheDir, [tools.Tool.CLANG], ['-Iinclude', '-lm'], excludes=excludes)) print("Compiling Shootout Suite with -O1 ", end='') tools.printProgress(tools.multicompileFolder(_benchmarksgameSuiteDir, _cacheDir, [tools.Tool.CLANG], ['-Iinclude', '-lm'], [tools.Optimization.O1], tools.ProgrammingLanguage.LLVMBC, excludes=excludes))
def compileGCCSuite(): ensureGCCSuiteExists() excludes = tools.collectExcludePattern(os.path.join(_gccSuiteDir, "configs/")) print("Compiling GCC Suite reference executables ", end='') tools.printProgress(tools.multicompileRefFolder(_gccSuiteDir, _cacheDir, [tools.Tool.CLANG, tools.Tool.GFORTRAN], ['-Iinclude'], excludes=excludes)) print("Compiling GCC Suite with -O0 ", end='') tools.printProgress(tools.multicompileFolder(_gccSuiteDir, _cacheDir, [tools.Tool.CLANG, tools.Tool.GFORTRAN], ['-Iinclude'], [tools.Optimization.O0], tools.ProgrammingLanguage.LLVMBC, excludes=excludes))
def compileSulongSuite(): print("Compiling Sulong Suite reference executables ", end='') tools.printProgress(tools.multicompileRefFolder(_sulongSuiteDir, _cacheDir, [tools.Tool.CLANG], ['-Iinclude', '-lm'])) print("Compiling Sulong Suite with clang -O0 ", end='') tools.printProgress(tools.multicompileFolder(_sulongSuiteDir, _cacheDir, [tools.Tool.CLANG], ['-Iinclude', '-lm'], [tools.Optimization.O0], tools.ProgrammingLanguage.LLVMBC, optimizers=[tools.Tool.BB_VECTORIZE])) print("Compiling Sulong Suite with clang -O1/2/3 ", end='') tools.printProgress(tools.multicompileFolder(_sulongSuiteDir, _cacheDir, [tools.Tool.CLANG], ['-Iinclude', '-lm'], [tools.Optimization.O1, tools.Optimization.O2, tools.Optimization.O3], tools.ProgrammingLanguage.LLVMBC)) print("Compiling Sulong Suite with gcc -O0 ", end='') tools.printProgress(tools.multicompileFolder(_sulongSuiteDir, _cacheDir, [tools.Tool.GCC], ['-Iinclude', '-lm'], [tools.Optimization.O0], tools.ProgrammingLanguage.LLVMBC))
#Itererate for a particle bunch changeInitial = True savePos = False start.record() for runNumber in range(nRuns+1): if runNumber == nRuns: plt.ion(), plt.show() plotData( nRuns ) savePos=True changeInitial = False collisionsPerRun = collisionsForPlot if runNumber%(1)==0: secs = start.time_till(end.record().synchronize())*1e-3 totalTime += secs printProgress( runNumber, nRuns, 1, secs ) start.record() mainKernel(np.uint8(usingAnimation), np.int32(nParticles), np.int32(collisionsPerRun), np.int32(nSpheres), spheresCaract_d, np.int32(nWalls), wallsCaract_d, initialPosX_d, initialPosY_d, initialPosZ_d, initialVelX_d, initialVelY_d, initialVelZ_d, initialRegionX_d, initialRegionY_d, initialRegionZ_d, outPosX_d, outPosY_d, outPosZ_d, times_d, np.float32(deltaTime_anim), timesIdx_anim_d, np.float32( deltaTime_radius ), timesIdx_rad_d, timesOccupancy_d, radiusAll_d, np.int32(savePos), np.int32(particlesForPlot), np.int32(changeInitial), np.intp(0), grid=grid, block=block) if runNumber%5==0 and plotting: plotData( runNumber ) print "\n\nFinished in : {0:.4f} sec\n".format( float( totalTime ) ) #Get the results outPosX = np.zeros(nData + particlesForPlot)
def Integrate_Evolution(n_H_comov, n_He_comov, T_start, uvb_rates, cosmo, z_start, z_end, n_samples, output_to_file=None, integrator='bdf'): # Create scale factor array a_start = 1. / (z_start + 1) a_end = 1. / (z_end + 1) z_vals = np.linspace(z_end, z_start, n_samples)[::-1] a_vals = 1 / (z_vals + 1) da_vals = a_vals[1:] - a_vals[:-1] dz_vals = z_vals[1:] - z_vals[:-1] # Integrate Temperature evolution n = len(da_vals) time = 0 current_a = a_start solve_equilibrium = False current_state, solution = initialize(a_start, T_start, n_H_comov, n_He_comov) if output_to_file is not None: file_name = output_to_file['file_name'] output_fields = output_to_file['fields'] output_file = open(file_name, "w") print(f'Writing Fields: {output_fields}') print(f'Output File: {file_name}') output_to_file['file'] = output_file header = '#' for field in output_fields: header += f' {field}' output_file.write(header) n_iter = 100 start = timer.time() print(f'Integrator: {integrator}') print('Integrating Thermal Evolution...') for i in range(n): current_z = 1 / current_a - 1 append_state_to_solution(fields, current_state, solution) delta_a = da_vals[i] delta_z = dz_vals[i] dt = cosmo.get_dt(current_a, delta_a) print_str = 'da = {0:.3e} dt = {1:.2e} '.format(delta_a, dt) # print( print_str ) print_str = 'z = {0:.3f} T = {1:.2f} n_HI = {2:.5f} '.format( current_z, current_state['temperature'], current_state['n_HI']) # print( print_str ) state_array = get_state_array(fields, current_state) if integrator == 'rk4': state_array = RK4_step(all_deriv, time, state_array, dt, cosmo=cosmo, uvb_rates=uvb_rates, output_to_file=output_to_file) if integrator == 'bdf': state_array = BDF_step(state_array, time, dt, cosmo=cosmo, uvb_rates=uvb_rates, output_to_file=output_to_file) # break current_state = update_current_state(fields, state_array, current_state) print_str = 'z = {0:.3f} T = {1:.2f} n_HI = {2:.5f} '.format( current_z, current_state['temperature'], current_state['n_HI']) # print( print_str ) if solve_equilibrium: H = cosmo.get_Hubble(current_a) current_rates_eq = interpolate_rates(current_z, uvb_rates_eq) n_H = n_H_comov / current_a**3 n_He = n_He_comov / current_a**3 # #Get Ioniozation Fractions chemistry_eq = Get_Ionization_Fractions_Iterative( n_H, n_He, temp_eq, current_rates_eq['ionization']) # temp_eq = RK4_step( temp_deriv, time, temp_eq, dt, H=H, rates=current_rates_eq, chemistry=chemistry_eq, z=current_z) temp_eq_vals.append(temp_eq) time += dt current_a += delta_a if i % n_iter == 0: end = timer.time() delta = end - start n_H = current_state['n_H'] n_HII = current_state['n_HII'] x_HII = n_HII / n_H print_str = 'z = {0:.3f} T = {1:.2f} x_HII = {2:.5f} '.format( current_z, current_state['temperature'], x_HII) printProgress(i, n, delta, print_str=print_str) # print( print_str ) append_state_to_solution(fields, current_state, solution) for field in fields: solution[field] = np.array(solution[field]) solution['z'] = z_vals printProgress(i, n, delta) print('\nEvolution Fisished') if output_to_file: output_file.close() print(f'Saved File: {file_name}') return solution