Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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))
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
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))
Exemplo n.º 5
0
#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)
Exemplo n.º 6
0
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