diff --git a/spec.ts b/spec.ts new file mode 100644 index 0000000..3852a8e --- /dev/null +++ b/spec.ts @@ -0,0 +1,358 @@ +import * as path from 'path'; + +export interface SPECBench { + objectNames: string[]; + num: number; + name: string; + exe: string; +} + +export const pop2: SPECBench = { + objectNames: [ + "netcdf/attr.o", + "netcdf/dim.o", + "netcdf/error.o", + "netcdf/fort-attio.o", + "netcdf/fort-control.o", + "netcdf/fort-dim.o", + "netcdf/fort-genatt.o", + "netcdf/fort-geninq.o", + "netcdf/fort-genvar.o", + "netcdf/fort-lib.o", + "netcdf/fort-misc.o", + "netcdf/fort-v2compat.o", + "netcdf/fort-var1io.o", + "netcdf/fort-varaio.o", + "netcdf/fort-vario.o", + "netcdf/fort-varmio.o", + "netcdf/fort-varsio.o", + "netcdf/libvers.o", + "netcdf/nc.o", + "netcdf/ncx.o", + "netcdf/posixio.o", + "netcdf/putget.o", + "netcdf/string.o", + "netcdf/v1hpg.o", + "netcdf/v2i.o", + "netcdf/var.o", + "netcdf/netcdf.o", + "netcdf/typeSizes.o", + "fort.fppized.o", + "mpi.o", + "send.o", + "recv.o", + "collective.o", + "req.o", + "list.o", + "handles.o", + "comm.o", + "group.o", + "time.o", + "pack.o", + "m_IndexBin_char.fppized.o", + "m_IndexBin_integer.fppized.o", + "m_IndexBin_logical.fppized.o", + "m_List.fppized.o", + "m_MergeSorts.fppized.o", + "m_Filename.fppized.o", + "m_FcComms.fppized.o", + "m_Permuter.fppized.o", + "m_SortingTools.fppized.o", + "m_String.fppized.o", + "m_StrTemplate.fppized.o", + "m_chars.fppized.o", + "m_die.fppized.o", + "m_dropdead.fppized.o", + "m_FileResolv.fppized.o", + "m_flow.fppized.o", + "m_inpak90.fppized.o", + "m_ioutil.fppized.o", + "m_mall.fppized.o", + "m_mpif.fppized.o", + "m_mpif90.fppized.o", + "m_mpout.fppized.o", + "m_rankMerge.fppized.o", + "m_realkinds.fppized.o", + "m_stdio.fppized.o", + "m_TraceBack.fppized.o", + "m_zeit.fppized.o", + "get_zeits.o", + "m_MCTWorld.fppized.o", + "m_AttrVect.fppized.o", + "m_GlobalMap.fppized.o", + "m_GlobalSegMap.fppized.o", + "m_GlobalSegMapComms.fppized.o", + "m_Accumulator.fppized.o", + "m_SparseMatrix.fppized.o", + "m_Navigator.fppized.o", + "m_AttrVectComms.fppized.o", + "m_AttrVectReduce.fppized.o", + "m_AccumulatorComms.fppized.o", + "m_GeneralGrid.fppized.o", + "m_GeneralGridComms.fppized.o", + "m_SpatialIntegral.fppized.o", + "m_SpatialIntegralV.fppized.o", + "m_MatAttrVectMul.fppized.o", + "m_Merge.fppized.o", + "m_GlobalToLocal.fppized.o", + "m_ExchangeMaps.fppized.o", + "m_ConvertMaps.fppized.o", + "m_SparseMatrixDecomp.fppized.o", + "m_SparseMatrixToMaps.fppized.o", + "m_SparseMatrixComms.fppized.o", + "m_SparseMatrixPlus.fppized.o", + "m_Router.fppized.o", + "m_Rearranger.fppized.o", + "m_Transfer.fppized.o", + "alloc_mod.fppized.o", + "box_rearrange.fppized.o", + "iompi_mod.fppized.o", + "ionf_mod.fppized.o", + "mct_rearrange.fppized.o", + "nf_mod.fppized.o", + "piodarray.fppized.o", + "pio.fppized.o", + "pio_kinds.fppized.o", + "piolib_mod.fppized.o", + "pio_mpi_utils.fppized.o", + "pionfatt_mod.fppized.o", + "pionfget_mod.fppized.o", + "pionfput_mod.fppized.o", + "pionfread_mod.fppized.o", + "pio_nf_utils.fppized.o", + "pionfwrite_mod.fppized.o", + "pio_quicksort.fppized.o", + "pio_spmd_utils.fppized.o", + "pio_support.fppized.o", + "pio_types.fppized.o", + "pio_utils.fppized.o", + "pnetcdfversion.o", + "rearrange.fppized.o", + "topology.o", + "dead_data_mod.fppized.o", + "dead_mct_mod.fppized.o", + "dead_mod.fppized.o", + "ESMF_AlarmClockMod.fppized.o", + "ESMF_AlarmMod.fppized.o", + "ESMF_BaseMod.fppized.o", + "ESMF_BaseTimeMod.fppized.o", + "ESMF_CalendarMod.fppized.o", + "ESMF_ClockMod.fppized.o", + "ESMF_FractionMod.fppized.o", + "ESMF_Mod.fppized.o", + "ESMF_Stubs.fppized.o", + "ESMF_TimeIntervalMod.fppized.o", + "ESMF_TimeMod.fppized.o", + "f_wrappers.o", + "GPTLget_memusage.o", + "GPTLprint_memusage.o", + "GPTLutil.o", + "mct_mod.fppized.o", + "Meat.fppized.o", + "perf_mod.fppized.o", + "perf_utils.fppized.o", + "seq_cdata_mod.fppized.o", + "seq_comm_mct.fppized.o", + "seq_drydep_mod.fppized.o", + "seq_flds_indices.fppized.o", + "seq_flds_mod.fppized.o", + "seq_infodata_mod.fppized.o", + "seq_io_mod.fppized.o", + "seq_timemgr_mod.fppized.o", + "shr_cal_mod.fppized.o", + "shr_const_mod.fppized.o", + "shr_dmodel_mod.fppized.o", + "shr_file_mod.fppized.o", + "shr_flux_mod.fppized.o", + "shr_jlcp.o", + "shr_kind_mod.fppized.o", + "shr_log_mod.fppized.o", + "shr_map_mod.fppized.o", + "shr_mct_mod.fppized.o", + "shr_mem_mod.fppized.o", + "shr_mpi_mod.fppized.o", + "shr_msg_mod.fppized.o", + "shr_ncread_mod.fppized.o", + "shr_orb_mod.fppized.o", + "shr_pcdf_mod.fppized.o", + "shr_scam_mod.fppized.o", + "shr_strdata_mod.fppized.o", + "shr_stream_mod.fppized.o", + "shr_string_mod.fppized.o", + "shr_sys_mod.fppized.o", + "shr_timer_mod.fppized.o", + "shr_tInterp_mod.fppized.o", + "shr_vmath_fwrap.o", + "shr_vmath_mod.fppized.o", + "threadutil.o", + "wrf_error_fatal.fppized.o", + "wrf_message.fppized.o", + "atm_comp_mct.fppized.o", + "datm_comp_mod.fppized.o", + "datm_shr_mod.fppized.o", + "dlnd_comp_mod.fppized.o", + "lnd_comp_mct.fppized.o", + "dice_comp_mod.fppized.o", + "ice_comp_mct.fppized.o", + "POP_BlocksMod.fppized.o", + "POP_BroadcastMod.fppized.o", + "POP_CommMod.fppized.o", + "POP_ConfigMod.fppized.o", + "POP_ConstantsMod.fppized.o", + "POP_DistributionMod.fppized.o", + "POP_DomainSizeMod.fppized.o", + "POP_ErrorMod.fppized.o", + "POP_FieldMod.fppized.o", + "POP_FinalMod.fppized.o", + "POP_GridDimMod.fppized.o", + "POP_GridHorzMod.fppized.o", + "POP_GridVertMod.fppized.o", + "POP_HaloMod.fppized.o", + "POP_IOUnitsMod.fppized.o", + "POP_InitMod.fppized.o", + "POP_KindsMod.fppized.o", + "POP_MCT_vars_mod.fppized.o", + "POP_RedistributeMod.fppized.o", + "POP_ReductionsMod.fppized.o", + "POP_SolversMod.fppized.o", + "advection.fppized.o", + "baroclinic.fppized.o", + "barotropic.fppized.o", + "blocks.fppized.o", + "broadcast.fppized.o", + "budget_diagnostics.fppized.o", + "cfc11_mod.fppized.o", + "cfc_mod.fppized.o", + "check_mod.fppized.o", + "co2calc.fppized.o", + "communicate.fppized.o", + "constants.fppized.o", + "current_meters.fppized.o", + "diag_bsf.fppized.o", + "diagnostics.fppized.o", + "diags_on_lat_aux_grid.fppized.o", + "distribution.fppized.o", + "domain.fppized.o", + "domain_size.fppized.o", + "drifters.fppized.o", + "ecosys_mod.fppized.o", + "ecosys_parms.fppized.o", + "exit_mod.fppized.o", + "forcing.fppized.o", + "forcing_ap.fppized.o", + "forcing_coupled.fppized.o", + "forcing_fields.fppized.o", + "forcing_pt_interior.fppized.o", + "forcing_s_interior.fppized.o", + "forcing_sfwf.fppized.o", + "forcing_shf.fppized.o", + "forcing_tools.fppized.o", + "forcing_ws.fppized.o", + "gather_scatter.fppized.o", + "global_reductions.fppized.o", + "grid.fppized.o", + "history.fppized.o", + "hmix_aniso.fppized.o", + "hmix_del2.fppized.o", + "hmix_del4.fppized.o", + "hmix_gm.fppized.o", + "hmix_gm_submeso_share.fppized.o", + "horizontal_mix.fppized.o", + "hydro_sections.fppized.o", + "iage_mod.fppized.o", + "ice.fppized.o", + "initial.fppized.o", + "io.fppized.o", + "io_binary.fppized.o", + "io_ccsm.fppized.o", + "io_netcdf.fppized.o", + "io_pio.fppized.o", + "io_tools.fppized.o", + "io_types.fppized.o", + "kinds_mod.fppized.o", + "mix_submeso.fppized.o", + "movie.fppized.o", + "ms_balance.fppized.o", + "msg_mod.fppized.o", + "named_field_mod.fppized.o", + "ocn_communicator.fppized.o", + "ocn_comp_mct.fppized.o", + "operators.fppized.o", + "output.fppized.o", + "overflows.fppized.o", + "passive_tracer_tools.fppized.o", + "passive_tracers.fppized.o", + "pressure_grad.fppized.o", + "prognostic.fppized.o", + "qflux_mod.fppized.o", + "registry.fppized.o", + "restart.fppized.o", + "spacecurve_mod.fppized.o", + "state_mod.fppized.o", + "step_mod.fppized.o", + "surface_hgt.fppized.o", + "sw_absorption.fppized.o", + "tavg.fppized.o", + "tidal_mixing.fppized.o", + "time_management.fppized.o", + "timers.fppized.o", + "topostress.fppized.o", + "tracer_types.fppized.o", + "vertical_mix.fppized.o", + "vmix_const.fppized.o", + "vmix_kpp.fppized.o", + "vmix_rich.fppized.o", + "glc_comp_mct.fppized.o", + "ccsm_driver.fppized.o", + "map_atmatm_mct.fppized.o", + "map_atmice_mct.fppized.o", + "map_atmlnd_mct.fppized.o", + "map_atmocn_mct.fppized.o", + "map_glcglc_mct.fppized.o", + "map_iceice_mct.fppized.o", + "map_iceocn_mct.fppized.o", + "map_lndlnd_mct.fppized.o", + "map_ocnocn_mct.fppized.o", + "map_rofocn_mct.fppized.o", + "map_rofrof_mct.fppized.o", + "map_snoglc_mct.fppized.o", + "map_snosno_mct.fppized.o", + "mrg_x2a_mct.fppized.o", + "mrg_x2g_mct.fppized.o", + "mrg_x2i_mct.fppized.o", + "mrg_x2l_mct.fppized.o", + "mrg_x2o_mct.fppized.o", + "mrg_x2s_mct.fppized.o", + "seq_avdata_mod.fppized.o", + "seq_diag_mct.fppized.o", + "seq_domain_mct.fppized.o", + "seq_flux_mct.fppized.o", + "seq_frac_mct.fppized.o", + "seq_hist_mod.fppized.o", + "seq_rearr_mod.fppized.o", + "seq_rest_mod.fppized.o", + ], + exe: "speed_pop2_base.mytest-m64", + name: "pop2_s", + num: 628, +}; + + +export function benchpath(specdir: string, bench: SPECBench): string { + return path.join(specdir, 'benchspec', 'CPU', `${bench.num}.${bench.name}`); +} + +export function exepath(specdir: string, bench: SPECBench): string { + const benchmarkDir = benchpath(specdir, bench); + return path.join(benchmarkDir, 'exe', bench.exe); +} + +export function buildpath(specdir: string, bench: SPECBench): string { + const benchmarkDir = benchpath(specdir, bench); + return path.join(benchmarkDir, 'build'); +} + +export function setenv(specdir: string): void { + process.env.SPEC = specdir; + process.env.PATH = `${path.join(specdir, 'bin')}${path.delimiter}${process.env.PATH}`; +}