diff --git a/Analytics/Area_Energy_Cost_Model/cca_chip_perf.py b/Analytics/Area_Energy_Cost_Model/cca_chip_perf.py new file mode 100644 index 0000000..8ccd129 --- /dev/null +++ b/Analytics/Area_Energy_Cost_Model/cca_chip_perf.py @@ -0,0 +1,297 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2024, Maciej Andrzej Brodowicz + +import math, sys + +# All physical quantities expressed in unprefixed SI units + +############################################################################# +### inputs +############################################################################# + +# Here operon means message. + +args = sys.argv + +if len(sys.argv) < 3: + print( + "Usage: python cca_chip_perf.py \ + \ + " + ) + sys.exit(1) + +# execution cycles +cycles = 10944 # 1e5 +# total operon nearest-neighbor hops +op_hops = 52311459 # 75e6 +# total operons +op_count = 1252526 # 1e6 +# average operon payload +payload_bytes = 4 +# actions executed +action_count = 110119 # 2e6 +# bytes per action +action_bytes = 4 +# Ruche distance (in nearest neighbor hops) +ruche_len = 3 +# Ruche fraction of all operon traffic +ruche_op_hops = 60e6 + +# fontons per die +fn = 64 +# SRAM per fonton +sram_bytes = 2048 * 1024 # 1*1024*1024 +# clock [Hz] +freq = 1e9 +# flit (operon) size +flit_bits = 256 +# word size [bits] +word = 64 + + +# From CMD +fn = int(args[1]) +sram_bytes = int(args[2]) * 1024 # Assumes in KB therefore we multiply by 1024 +cycles = int(args[3]) +op_hops = int(args[4]) +op_count = int(args[5]) +payload_bytes = int(args[6]) +action_count = int(args[7]) +action_bytes = int(args[8]) +network = args[9] + + +############################################################################# +### data from Dalorex paper +############################################################################# +# SRAM density (7nm) [byte/m^2] +sram_byte_density = 29.2e6 / 8 / 1e-6 + +# leakage power (32KB @7nm) [W/byte] +sram_byte_leakage = 16.9e-6 / 32768 + +# SRAM access cost per access [J/word] +sram_rd_energy = 5.8e-12 +sram_wr_energy = 9.12e-12 + +# NoC: energy to send message bit over unit distance [J/m] +msg_bit_energy = 8e-12 / 32 / 1e-3 + +############################################################################# +### RV +############################################################################# +# SiFive: RV32E in 13,500 gates +# ZERO_RISCY: 11,600 gates 2-stage pipeline +# RISC V transistor count +rv_T = 12000 * 4 + +# RISC V area (vanilla core) +rv_area = 0.024e-6 + +############################################################################# +### transistor counts +############################################################################# +# logic density (TSMC original N7) +Tdensity = 91e12 + +# basic component transistor counts: flip-flop, n:1 muxes +fdreT = 12 +mux2T = 8 +mux3T = 2 * mux2T +mux4T = 3 * mux2T +mux6T = 5 * mux2T +mux5T = 4 * mux2T +mux7T = 6 * mux2T +mux8T = 2 * mux4T + mux2T + +# from Jung (Ruche nets) paper +# plain Cartesian mesh +# fifos: +ofifoT = 5 * 2 * fdreT * flit_bits +ififoT = 1 * 4 * fdreT * flit_bits +# muxes +fifomuxT = (2 * mux2T + 2 * mux4T + mux5T) * flit_bits +meshT = fifomuxT + ofifoT + ififoT + +# 2D torus supposedly 50% more expensive +t2dT = meshT * 1.5 + +# Ruche +ruche_ififoT = ififoT + 4 * fdreT * flit_bits +ruche_ofifoT = ofifoT +ruche_fifomuxT = (2 * mux3T + 2 * mux6T + mux7T + 2 * mux2T) * flit_bits +rucheT = ruche_fifomuxT + ruche_ofifoT + ruche_ififoT + +# Ruche and 2D torus +ruchet2dT = rucheT - meshT + t2dT + +# execution unit +euT = 100e3 + + +############################################################################# +def banner(s): + LEN = 50 + l = (LEN - len(s)) // 2 + if l <= 0: + print("***", s) + return + print(l * "*", s, l * "*") + + +# fonton area +def farea(netT): + memA = sram_bytes / sram_byte_density + netA = netT / Tdensity + euA = euT / Tdensity + return memA + netA + euA + + +# cumulative operon transport energy +def net_energy(hops, avg_dist): + return hops * avg_dist * flit_bits * msg_bit_energy + + +# dynamic memory energy +def mem_energy(word_reads, word_writes): + rdE = word_reads * sram_rd_energy + wrE = word_writes * sram_wr_energy + return rdE + wrE + + +# static energy +def leakage_power(): + return fn * fn * sram_bytes * sram_byte_leakage + + +# mesh NoC +def mesh_cost(): + banner("2D Mesh") + fa = farea(meshT) + side = math.sqrt(fa) + + """ print(f"Chip area: {fn*fn*fa*1e6:.6f} mm^2") + print(f"Total CCs: {fn*fn}") + print(f"Total Chip Memory: {(fn*fn*sram_bytes)/(1024*1024)} MB") """ + + netE = net_energy(op_hops, side) + memE = mem_energy( + op_count * payload_bytes / (word / 8), action_count * action_bytes / (word / 8) + ) + time = cycles / freq + totE = netE + memE + leakage_power() * time + """ print(f"Total energy: {totE:.6f} J") + print(f"Average power: {totE/time:.6f} W") + print(f"Total time: {time:.6f} s") """ + + chip_area = fn * fn * fa * 1e6 + + return chip_area, totE, time + + +# 2D torus NoC +def t2d_cost(): + banner("2D torus NoC") + fa = farea(t2dT) + side = math.sqrt(fa) + op_dist = 2 * (fn - 1) * side / fn + + """ print(f"Chip area: {fn*fn*fa*1e6:.6f} mm^2") + print(f"Total CCs: {fn*fn}") + print(f"Total Chip Memory: {(fn*fn*sram_bytes)/(1024*1024)} MB") + """ + netE = net_energy(op_hops, op_dist) + memE = mem_energy( + op_count * payload_bytes / (word / 8), action_count * action_bytes / (word / 8) + ) + time = cycles / freq + totE = netE + memE + leakage_power() * time + """ print(f"Total energy: {totE:.6f} J") + print(f"Average power: {totE/time:.6f} W") + print(f"Total time: {time:.6f} s") """ + + chip_area = fn * fn * fa * 1e6 + + return chip_area, totE, time + + +# Ruche NoC +def ruche_cost(): + banner("Ruche NoC") + fa = farea(rucheT) + side = math.sqrt(fa) + + print(f"Chip area: {fn*fn*fa*1e6:.6f} mm^2") + print(f"Total CCs: {fn*fn}") + print(f"Total Chip Memory: {(fn*fn*sram_bytes)/(1024*1024)} MB") + + if ruche_op_hops > op_hops: + print("Error: count of operon hops over Ruche links greater than total hops") + sys.exit(1) + meshE = net_energy(op_hops - ruche_op_hops, side) + rucheE = net_energy(ruche_op_hops, side * ruche_len) + netE = meshE + rucheE + memE = mem_energy( + op_count * payload_bytes / (word / 8), action_count * action_bytes / (word / 8) + ) + time = cycles / freq + totE = netE + memE + leakage_power() * time + print(f"Total energy: {totE:.6f} J") + print(f"Average power: {totE/time:.6f} W") + print(f"Total time: {time:.6f} s") + + chip_area = fn * fn * fa * 1e6 + + return chip_area, totE, time + + +# 2D torus + Ruche NoC +def ruchet2d_cost(): + banner("2D torus and Ruche NoC") + fa = farea(ruchet2dT) + side = math.sqrt(fa) + + print(f"Chip area: {fn*fn*fa*1e6:.6f} mm^2") + print(f"Total CCs: {fn*fn}") + print(f"Total Chip Memory: {(fn*fn*sram_bytes)/(1024*1024)} MB") + + if ruche_op_hops > op_hops: + print("Error: count of operon hops over Ruche links greater than total hops") + sys.exit(1) + t2d_dist = 2 * (fn - 1) * side / fn + t2dE = net_energy(op_hops - ruche_op_hops, t2d_dist) + rucheE = net_energy(ruche_op_hops, side * ruche_len) + netE = t2dE + rucheE + memE = mem_energy( + op_count * payload_bytes / (word / 8), action_count * action_bytes / (word / 8) + ) + time = cycles / freq + totE = netE + memE + leakage_power() * time + print(f"Total energy: {totE:.6f} J") + print(f"Average power: {totE/time:.6f} W") + print(f"Total time: {time:.6f} s") + + chip_area = fn * fn * fa * 1e6 + + return chip_area, totE, time + + +############################################################################# +if __name__ == "__main__": + if network == "MESH": + chip_area, totE, time = mesh_cost() + # print(chip_area, totE, time + print(f"Chip area: {chip_area:.6f} mm^2") + print(f"Total energy: {totE:.6f} J") + print(f"Total time: {time:.6f} s") + elif network == "TORUS": + chip_area, totE, time = t2d_cost() + print(f"Chip area: {chip_area:.6f} mm^2") + print(f"Total energy: {totE:.6f} J") + print(f"Total time: {time:.6f} s") + else: + print("Invalid Network! ERROR") +# ruche_cost() +# ruchet2d_cost() diff --git a/Analytics/Post_Processing/post_processing_simple.py b/Analytics/Post_Processing/post_processing_simple.py index 953c628..076efbe 100644 --- a/Analytics/Post_Processing/post_processing_simple.py +++ b/Analytics/Post_Processing/post_processing_simple.py @@ -195,7 +195,7 @@ # read the per cycle active status data active_status_per_cycle = [] # stores the active status - for i in range(0, cycles): # cycles all cycles + for i in range(0, 3): # cycles all cycles line = file.readline() line = line.strip().split("\t") cycle = int(line[0]) @@ -264,12 +264,12 @@ def thousands_formatter(x, pos): def congestion_charts(): # Create a figure with subplots using gridspec_kw for shared boundaries - fig, axes = plt.subplots(1, 4, figsize=(9, 2.5), sharey=True) + fig, axes = plt.subplots(1, 4, figsize=(14, 4), sharey=True) # Flatten the axes array to easily iterate over subplots axes = axes.flatten() - bins = 15 + bins = 25 # blue: '#2F5597' # red: '#B00002' @@ -303,13 +303,16 @@ def congestion_charts(): ) axes[3].set_xlabel("") # Remove x-axis label for the second subplot + font_size = 16 + font_size_axis = 18 + # Set titles for each subplot titles = ["West Channel", "North Channel", "East Channel", "South Channel"] - axes[0].set_ylabel("Count of Compute Cells", fontsize=12, fontweight="bold") - axes[0].tick_params(axis="y", labelsize=12) + axes[0].set_ylabel("Count of Compute Cells", fontsize=font_size, fontweight="bold") + axes[0].tick_params(axis="y", labelsize=font_size_axis) for ax, title in zip(axes, titles): - ax.set_title(title, fontsize=12, fontweight="bold") - ax.tick_params(axis="x", labelsize=12) + ax.set_title(title, fontsize=font_size_axis, fontweight="bold") + ax.tick_params(axis="x", labelsize=font_size_axis, rotation=90) # ax.set_xlabel('Cycles Spent in Contention', fontsize=11, fontweight='bold') ax.grid(axis="y", color="gray", linestyle="dashed", linewidth=1) @@ -317,8 +320,8 @@ def congestion_charts(): for ax in axes: ax.xaxis.set_major_formatter(FuncFormatter(thousands_formatter)) ax.yaxis.set_major_formatter(FuncFormatter(thousands_formatter)) - # ax.set_xlim(0, 400000) # Set the x-axis limit - ax.set_ylim(0, 2500) # Set the y-axis limit + ax.set_xlim(0, 600000) # Set the x-axis limit + ax.set_ylim(0, 1500) # Set the y-axis limit # Adjust spacing between subplots plt.tight_layout() diff --git a/Applications/Breadth_First_Search/cca_bfs.hpp b/Applications/Breadth_First_Search/cca_bfs.hpp index 3233c44..939a517 100644 --- a/Applications/Breadth_First_Search/cca_bfs.hpp +++ b/Applications/Breadth_First_Search/cca_bfs.hpp @@ -91,6 +91,8 @@ bfs_predicate_T(ComputeCell& cc, // actionType /* action_type_in */, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); + // First check whether this is a ghost vertex.If it is then always predicate true. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); @@ -126,6 +128,8 @@ bfs_work_T(ComputeCell& cc, // actionType /* action_type_in */, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); + // First check whether this is a ghost vertex. If it is then don't perform any work. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); @@ -160,6 +164,7 @@ bfs_diffuse_predicate_T(ComputeCell& cc, // actionType /* action_type_in */, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); // First check whether this is a ghost vertex. If it is then always predicate true. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. diff --git a/Applications/Breadth_First_Search_Rhizome/cca_bfs_rhizome.hpp b/Applications/Breadth_First_Search_Rhizome/cca_bfs_rhizome.hpp index 4267bbe..cbdac47 100644 --- a/Applications/Breadth_First_Search_Rhizome/cca_bfs_rhizome.hpp +++ b/Applications/Breadth_First_Search_Rhizome/cca_bfs_rhizome.hpp @@ -88,6 +88,8 @@ template auto bfs_predicate_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); + // First check whether this is a ghost vertex. If it is then always predicate true. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); @@ -120,6 +122,8 @@ template auto bfs_work_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); + // First check whether this is a ghost vertex. If it is then don't perform any work. // parent word is used in the sense that `RhizomeRecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); @@ -152,6 +156,8 @@ auto bfs_diffuse_predicate_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); + // First check whether this is a ghost vertex. If it is then always predicate true. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); diff --git a/Applications/Dynamic_Breadth_First_Search/cca_dynamic_bfs.hpp b/Applications/Dynamic_Breadth_First_Search/cca_dynamic_bfs.hpp index dc49862..ee0b245 100644 --- a/Applications/Dynamic_Breadth_First_Search/cca_dynamic_bfs.hpp +++ b/Applications/Dynamic_Breadth_First_Search/cca_dynamic_bfs.hpp @@ -123,6 +123,8 @@ inline auto dynamic_bfs_predicate_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); + // First check whether this is a ghost vertex.If it is then always predicate true. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); @@ -155,6 +157,8 @@ template inline auto dynamic_bfs_work_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); + // First check whether this is a ghost vertex. If it is then don't perform any work. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); @@ -187,6 +191,8 @@ inline auto dynamic_bfs_diffuse_predicate_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) -> Closure { + cc.apply_CPI(1); + // First check whether this is a ghost vertex. If it is then always predicate true. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); diff --git a/Applications/Page_Rank_Fixed_Iterations/cca_page_rank_fixed_iterations.hpp b/Applications/Page_Rank_Fixed_Iterations/cca_page_rank_fixed_iterations.hpp index 09b7820..b5abc3d 100644 --- a/Applications/Page_Rank_Fixed_Iterations/cca_page_rank_fixed_iterations.hpp +++ b/Applications/Page_Rank_Fixed_Iterations/cca_page_rank_fixed_iterations.hpp @@ -139,6 +139,7 @@ page_rank_fixed_iterations_germinate_work_T(ComputeCell& cc, PageRankFixedIterationsArguments my_score_to_send; + cc.apply_CPI(DIV_CPI + LOAD_STORE_CPI); my_score_to_send.score = v->page_rank_current_rank_score / static_cast(v->outbound_degree); my_score_to_send.src_vertex_id = v->id; @@ -154,6 +155,7 @@ page_rank_fixed_iterations_germinate_work_T(ComputeCell& cc, // Reset. if (0 == v->inbound_degree) { + cc.apply_CPI(DIV_CPI + SUBT_CPI + (3 * LOAD_STORE_CPI) + ADD_CPI); // Update the page rank score. v->page_rank_current_rank_score = ((1.0 - damping_factor) / static_cast(v->total_number_of_vertices)); @@ -203,6 +205,7 @@ page_rank_fixed_iterations_work_T(ComputeCell& cc, PageRankFixedIterationsArguments const page_rank_args = cca_get_action_argument(args); + cc.apply_CPI(2*ADD_CPI + LOAD_STORE_CPI); // Update partial new score with the new incoming score. v->current_iteration_rank_score += page_rank_args.score; v->current_iteration_incoming_count++; @@ -213,6 +216,7 @@ page_rank_fixed_iterations_work_T(ComputeCell& cc, PageRankFixedIterationsArguments my_score_to_send; + cc.apply_CPI(DIV_CPI + 2*LOAD_STORE_CPI); my_score_to_send.score = v->page_rank_current_rank_score / static_cast(v->outbound_degree); my_score_to_send.src_vertex_id = v->id; @@ -231,6 +235,7 @@ page_rank_fixed_iterations_work_T(ComputeCell& cc, // Reset. if (v->current_iteration_incoming_count == v->inbound_degree) { + cc.apply_CPI(DIV_CPI + SUBT_CPI + (3 * LOAD_STORE_CPI) + ADD_CPI); // Update the page rank score. v->page_rank_current_rank_score = ((1.0 - damping_factor) / static_cast(v->total_number_of_vertices)) + diff --git a/Applications/Page_Rank_Fixed_Iterations_Rhizome/cca_page_rank_fixed_iterations_rhizome.cpp b/Applications/Page_Rank_Fixed_Iterations_Rhizome/cca_page_rank_fixed_iterations_rhizome.cpp index 9fd2347..10c9c78 100644 --- a/Applications/Page_Rank_Fixed_Iterations_Rhizome/cca_page_rank_fixed_iterations_rhizome.cpp +++ b/Applications/Page_Rank_Fixed_Iterations_Rhizome/cca_page_rank_fixed_iterations_rhizome.cpp @@ -158,7 +158,8 @@ main(int argc, char** argv) -> int { std::cout << "Germinating " << vertices_inbound_degree_zero.size() - << " vertices who have indegree of 0: ["; + << " vertices who have indegree of 0" << std::endl; + /* std::cout << "["; // Print the contents of vertices_inbound_degree_zero for (size_t i = 0; i < vertices_inbound_degree_zero.size(); ++i) { std::cout << vertices_inbound_degree_zero[i]; @@ -166,7 +167,7 @@ main(int argc, char** argv) -> int std::cout << ", "; } } - std::cout << "]" << std::endl; + std::cout << "]" << std::endl; */ } // Prepare the arguments (payload) for the actions. @@ -194,12 +195,14 @@ main(int argc, char** argv) -> int // send their score to other vertices that will be waiting on them. for (const auto vertex_id : vertices_inbound_degree_zero) { - auto vertex_addr_to_zero_in_degree = input_graph.get_vertex_address_in_cca(vertex_id); + auto vertex_addr_to_zero_in_degree = + input_graph.get_vertex_address_in_cca_rhizome(vertex_id); // Prepare the arguments (payload) for the actions. PageRankFixedIterationsArguments germinate_arg_to_zero_in_degree; germinate_arg_to_zero_in_degree.score = -10; germinate_arg_to_zero_in_degree.src_vertex_id = 99999; + germinate_arg_to_zero_in_degree.iteration = iterations; ActionArgumentType const args_to_zero_in_degree = cca_create_action_argument( diff --git a/Applications/Page_Rank_Fixed_Iterations_Rhizome/cca_page_rank_fixed_iterations_rhizome.hpp b/Applications/Page_Rank_Fixed_Iterations_Rhizome/cca_page_rank_fixed_iterations_rhizome.hpp index 4bc8e65..82aa0ff 100644 --- a/Applications/Page_Rank_Fixed_Iterations_Rhizome/cca_page_rank_fixed_iterations_rhizome.hpp +++ b/Applications/Page_Rank_Fixed_Iterations_Rhizome/cca_page_rank_fixed_iterations_rhizome.hpp @@ -147,6 +147,7 @@ page_rank_fixed_iterations_germinate_work_T(ComputeCell& cc, PageRankFixedIterationsArguments my_score_to_send; + cc.apply_CPI(DIV_CPI + LOAD_STORE_CPI); my_score_to_send.score = v->page_rank_current_rank_score.get_val() / static_cast(v->outbound_degree); my_score_to_send.src_vertex_id = v->id; @@ -162,6 +163,7 @@ page_rank_fixed_iterations_germinate_work_T(ComputeCell& cc, // Reset. This is a special case when the vertex has zero in-degree. if (0 == v->inbound_degree) { + cc.apply_CPI(DIV_CPI + SUBT_CPI + (3 * LOAD_STORE_CPI) + ADD_CPI); // Update the page rank score. v->page_rank_current_rank_score.set_val( ((1.0 - damping_factor) / static_cast(v->total_number_of_vertices))); @@ -211,6 +213,7 @@ page_rank_fixed_iterations_work_T(ComputeCell& cc, PageRankFixedIterationsArguments const page_rank_args = cca_get_action_argument(args); + cc.apply_CPI((2 * ADD_CPI) + LOAD_STORE_CPI); // Update partial new score with the new incoming score. v->current_iteration_rank_score += page_rank_args.score; v->current_iteration_incoming_count++; @@ -221,6 +224,7 @@ page_rank_fixed_iterations_work_T(ComputeCell& cc, PageRankFixedIterationsArguments my_score_to_send; + cc.apply_CPI(DIV_CPI + (2 * LOAD_STORE_CPI)); my_score_to_send.score = v->page_rank_current_rank_score.get_val() / static_cast(v->outbound_degree); // For debugging @@ -308,6 +312,7 @@ page_rank_fixed_iterations_rhizome_collapse_T(ComputeCell& cc, PageRankFixedIterationsArguments const page_rank_args = cca_get_action_argument(args); + cc.apply_CPI(ADD_CPI); // Accumulate the score. v->page_rank_current_rank_score.lco += page_rank_args.score; @@ -316,6 +321,7 @@ page_rank_fixed_iterations_rhizome_collapse_T(ComputeCell& cc, // diffused and inserted into this CC and then the system schedules it. if (v->page_rank_current_rank_score.lco.increment()) { + cc.apply_CPI(DIV_CPI + SUBT_CPI + (3 * LOAD_STORE_CPI) + ADD_CPI); // Update the page rank score. v->page_rank_current_rank_score.set_val( ((1.0 - damping_factor) / static_cast(v->total_number_of_vertices)) + diff --git a/Applications/Single_Source_Shortest_Path/cca_sssp.hpp b/Applications/Single_Source_Shortest_Path/cca_sssp.hpp index 77855df..db9f4a7 100644 --- a/Applications/Single_Source_Shortest_Path/cca_sssp.hpp +++ b/Applications/Single_Source_Shortest_Path/cca_sssp.hpp @@ -102,6 +102,7 @@ sssp_predicate_T(ComputeCell& cc, const Address addr, const ActionArgumentType a SSSPArguments const sssp_args = cca_get_action_argument(args); u_int32_t const incoming_distance = sssp_args.distance; + cc.apply_CPI(1); if (v->sssp_distance > incoming_distance) { return Closure(cc.null_true_event, nullptr); } @@ -135,6 +136,7 @@ sssp_work_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) SSSPArguments const sssp_args = cca_get_action_argument(args); u_int32_t const incoming_distance = sssp_args.distance; + cc.apply_CPI(LOAD_STORE_CPI); // Update distance with the new distance v->sssp_distance = incoming_distance; return Closure(cc.null_true_event, nullptr); @@ -154,7 +156,6 @@ inline auto sssp_diffuse_predicate_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) -> Closure { - // First check whether this is a ghost vertex.If it is then always predicate true. // parent word is used in the sense that `RecursiveParallelVertex` is the parent class. auto* parent_recursive_parralel_vertex = static_cast(cc.get_object(addr)); @@ -168,6 +169,7 @@ sssp_diffuse_predicate_T(ComputeCell& cc, const Address addr, const ActionArgume SSSPArguments const sssp_args = cca_get_action_argument(args); u_int32_t const incoming_distance = sssp_args.distance; + cc.apply_CPI(LOAD_STORE_CPI); if (v->sssp_distance == incoming_distance) { return Closure(cc.null_true_event, nullptr); } diff --git a/Applications/Single_Source_Shortest_Path_Rhizome/cca_sssp_rhizome.hpp b/Applications/Single_Source_Shortest_Path_Rhizome/cca_sssp_rhizome.hpp index 4557353..2ee7f54 100644 --- a/Applications/Single_Source_Shortest_Path_Rhizome/cca_sssp_rhizome.hpp +++ b/Applications/Single_Source_Shortest_Path_Rhizome/cca_sssp_rhizome.hpp @@ -102,6 +102,7 @@ sssp_predicate_T(ComputeCell& cc, const Address addr, const ActionArgumentType a SSSPArguments const sssp_args = cca_get_action_argument(args); u_int32_t const incoming_distance = sssp_args.distance; + cc.apply_CPI(1); if (v->sssp_distance > incoming_distance) { return Closure(cc.null_true_event, nullptr); } @@ -135,6 +136,7 @@ sssp_work_T(ComputeCell& cc, const Address addr, const ActionArgumentType args) SSSPArguments const sssp_args = cca_get_action_argument(args); u_int32_t const incoming_distance = sssp_args.distance; + cc.apply_CPI(LOAD_STORE_CPI); // Update distance with the new distance v->sssp_distance = incoming_distance; return Closure(cc.null_true_event, nullptr); @@ -168,6 +170,7 @@ sssp_diffuse_predicate_T(ComputeCell& cc, const Address addr, const ActionArgume SSSPArguments const sssp_args = cca_get_action_argument(args); u_int32_t const incoming_distance = sssp_args.distance; + cc.apply_CPI(1); if (v->sssp_distance == incoming_distance) { return Closure(cc.null_true_event, nullptr); } diff --git a/Include/ComputeCell.hpp b/Include/ComputeCell.hpp index c43048a..18790aa 100644 --- a/Include/ComputeCell.hpp +++ b/Include/ComputeCell.hpp @@ -91,6 +91,14 @@ class ComputeCell : public Cell void diffuse(const Action& action); + // To simulate CPI in each compute cycle the compute cell executes this and if it returns true + // meaning there was instruction pending (see `pending_instructions` below) then don't perform + // any new task in task_queue, action_queue, or diffuse_queue. + auto decrement_CPI() -> bool; + + // increaments `pending_instructions`. + void apply_CPI(u_int32_t); + // This is also needed to satify the simulation as the network and logic on a single compute // cell both work in paralell. We first perform logic operations (work) then we do networking // related operations. This allows not just ease of programming but also opens the compute cells @@ -141,6 +149,14 @@ class ComputeCell : public Cell // making the simulation more accurate/realistic. std::queue task_queue; + // Used for CPI. The actions will contain CPI and `pending_instructions` will be updated. In the + // compute cycle of the simulation `pending_instructions` will be check to see if it is greater + // than 0, if it is then the compute cell will not take any task (the propagate in task_queue) + // or action_queue or diffuse_queue. It will just skip that compute cycle and simulate the + // latency of instructions (along with CPI) in the action that was just invoked. or any new + // action. + u_int32_t pending_instructions{}; // To simulate CPI. + // Constructor ComputeCell(u_int32_t id_in, CellType type_in, diff --git a/Include/Constants.hpp b/Include/Constants.hpp index be118bf..ec24765 100644 --- a/Include/Constants.hpp +++ b/Include/Constants.hpp @@ -107,4 +107,11 @@ inline constexpr bool split_queues = SPLIT_QUEUES; // To print to the output every output_skip_cycles's cycle inline constexpr u_int32_t output_skip_cycles = 1; +// CPI +inline constexpr u_int32_t ADD_CPI = 1; +inline constexpr u_int32_t SUBT_CPI = 1; +inline constexpr u_int32_t MUL_CPI = 5; +inline constexpr u_int32_t DIV_CPI = 30; +inline constexpr u_int32_t LOAD_STORE_CPI = 1; + #endif // CONSTANTS_HPP diff --git a/Papers/ICPP_2024/Plots/lazy_diffuse.py b/Papers/ICPP_2024/Plots/lazy_diffuse.py new file mode 100644 index 0000000..583a11b --- /dev/null +++ b/Papers/ICPP_2024/Plots/lazy_diffuse.py @@ -0,0 +1,130 @@ +import matplotlib.pyplot as plt +import matplotlib.ticker as mtick +import numpy as np + +# Data +datasets = ["E18", "R18", "AM", "LN", "LJ", "WK", "R22"] +chip_sizes = [16, 32, 64, 128] + +# Performance data +performance_data = { + "Actions Overlapped": { + "E18": [64.71, 78.48, 77.66, 73.97], + "R18": [71.08, 79.57, 67.50, 64.09], + "AM": [42.18, 58.44, 64.35, 34.30], + "LN": [4.16, 25.80, 28.21, 16.12], + "LJ": [75.64, 83.11, 81.85, 77.94], + "WK": [79.07, 83.17, 81.84, 71.56], + "R22": [78.12, 81.26, 80.03, 75.73], + }, + "Diffusions Pruned": { + "E18": [29.44, 29.46, 27.10, 26.01], + "R18": [17.71, 16.33, 15.25, 13.69], + "AM": [9.45, 9.64, 10.69, 7.88], + "LN": [2.70, 3.97, 3.01, 1.36], + "LJ": [27.65, 27.23, 26.19, 25.26], + "WK": [26.11, 26.02, 25.22, 24.38], + "R22": [20.10, 19.39, 17.49, 16.72], + }, +} + +# Set the bar width +bar_width = 1 +num_elements = len(datasets) +twice_bar = bar_width * 2 +gap = 0.5 + + +# Create subplots for each chip size +fig, axs = plt.subplots(1, len(chip_sizes), figsize=(14, 5), sharey=True) +# Flatten the axs array +""" axs = axs.flatten() """ + +# Initialize the list with the first element (gap) +Speedup_bar_pos = [0] +for _ in range(num_elements - 1): + # Calculate the next element and add it to the list + next_element = Speedup_bar_pos[-1] + twice_bar + gap + Speedup_bar_pos.append(next_element) + + +# Create a new positions by adding bar_width to each element of the Speedup_bar_pos +Energy_bar_pos = [element + bar_width for element in Speedup_bar_pos] + +font_size = 24 + +# Loop through chip sizes and create a subplot for each +plot_for_legend = [] +for i, chip_size in enumerate(chip_sizes): + ax = axs[i] + + # Extract data for the current chip size + data_speedup = [ + performance_data["Actions Overlapped"][dataset][i] for dataset in datasets + ] + data_energy = [ + performance_data["Diffusions Pruned"][dataset][i] for dataset in datasets + ] + + # Create bars + bar1 = ax.bar( + Speedup_bar_pos, + data_speedup, + align="center", + width=bar_width, + label="Actions Overlapped", + color="yellow", + linewidth=1, + edgecolor="black", + hatch="///", + ) + bar2 = ax.bar( + Energy_bar_pos, + data_energy, + align="center", + width=bar_width, + label="Diffusions Pruned Increase", + color="magenta", + linewidth=1, + edgecolor="black", + hatch="--", + ) + + # ax.set_ylim(0.5, 2) + + # Set labels and ticks + if i == 0: + ax.set_ylabel("Percentage", fontsize=font_size) + ax.yaxis.set_tick_params(labelsize=font_size) + plot_for_legend.append(bar1) + plot_for_legend.append(bar2) + ax.yaxis.set_major_formatter(mtick.PercentFormatter(100, decimals=0)) + ax.set_title(f"Chip: {chip_size} x {chip_size}", fontsize=font_size) + ax.set_xticks([element + gap for element in Speedup_bar_pos]) + ax.set_xticklabels(datasets, rotation=90) + ax.xaxis.set_tick_params(labelsize=font_size) + ax.grid(axis="y", color="gray", linestyle="dashed", linewidth=1) + + +# Collect legends +legends = [plot[0] for plot in plot_for_legend] +legends_text = ["Actions Overlapped", "Diffusions Pruned"] +# Create a single legend for the entire figure +fig.legend( + legends, + legends_text, + loc="upper center", + bbox_to_anchor=(0.55, 1.02), + ncol=3, + prop={"size": 16}, +) + +# Add a common title +""" plt.suptitle( + 'Performance Impact of Throttle and Buffer Size', fontsize=16) """ + +# Show the plot +plt.tight_layout() +plt.subplots_adjust(wspace=0) +plt.subplots_adjust(top=0.85) +plt.show() diff --git a/Papers/ICPP_2024/Plots/mesh_torus_comparison.py b/Papers/ICPP_2024/Plots/mesh_torus_comparison.py new file mode 100644 index 0000000..58ee47a --- /dev/null +++ b/Papers/ICPP_2024/Plots/mesh_torus_comparison.py @@ -0,0 +1,129 @@ +import matplotlib.pyplot as plt +import matplotlib.ticker as mtick +import numpy as np + +# Data +datasets = ["E18", "R18", "AM", "LN", "LJ", "WK-Rh", "R22-Rh"] +chip_sizes = [16, 32, 64, 128] + +# Performance data +performance_data = { + "Torus Time Reduction": { + "E18": [51.67, 50.44, 45.67, 42.76], + "R18": [43.06, 49.55, 35.68, 37.93], + "AM": [58.06, 57.36, 55.37, 36.60], + "LN": [36.87, 44.15, 40.16, 43.43], + "LJ": [42.03, 44.86, 47.20, 48.08], + "WK-Rh": [43.99, 46.09, 50.91, 44.36], + "R22-Rh": [41.33, 47.05, 45.20, 60.27], + }, + "Torus Energy Increase": { + "E18": [18.10, 23.56, 24.18, 26.41], + "R18": [26.77, 30.36, 33.38, 32.25], + "AM": [-0.09, 10.79, 16.04, 32.43], + "LN": [21.17, 25.73, 28.52, 31.50], + "LJ": [25.17, 28.50, 29.53, 32.24], + "WK-Rh": [24.66, 31.41, 32.08, 34.01], + "R22-Rh": [24.70, 29.45, 27.94, 26.23], + }, +} + + +# Set the bar width +bar_width = 1 +num_elements = len(datasets) +twice_bar = bar_width * 2 +gap = 0.5 + + +# Create subplots for each chip size +fig, axs = plt.subplots(1, len(chip_sizes), figsize=(14, 5.5), sharey=True) + + +# Initialize the list with the first element (gap) +Speedup_bar_pos = [0] +for _ in range(num_elements - 1): + # Calculate the next element and add it to the list + next_element = Speedup_bar_pos[-1] + twice_bar + gap + Speedup_bar_pos.append(next_element) + + +# Create a new positions by adding bar_width to each element of the Speedup_bar_pos +Energy_bar_pos = [element + bar_width for element in Speedup_bar_pos] + +font_size = 24 + +# Loop through chip sizes and create a subplot for each +plot_for_legend = [] +for i, chip_size in enumerate(chip_sizes): + ax = axs[i] + + # Extract data for the current chip size + data_speedup = [ + performance_data["Torus Time Reduction"][dataset][i] for dataset in datasets + ] + data_energy = [ + performance_data["Torus Energy Increase"][dataset][i] for dataset in datasets + ] + + # Create bars + bar1 = ax.bar( + Speedup_bar_pos, + data_speedup, + align="center", + width=bar_width, + label="Torus Time Reduction", + color="deepskyblue", + linewidth=1, + edgecolor="black", + hatch="///", + ) + bar2 = ax.bar( + Energy_bar_pos, + data_energy, + align="center", + width=bar_width, + label="Torus Energy Increase", + color="orangered", + linewidth=1, + edgecolor="black", + hatch="--", + ) + + ax.set_ylim(0, 70) + + # Set labels and ticks + if i == 0: + ax.set_ylabel("Percentage", fontsize=font_size) + ax.yaxis.set_tick_params(labelsize=font_size) + plot_for_legend.append(bar1) + plot_for_legend.append(bar2) + ax.yaxis.set_major_formatter(mtick.PercentFormatter(100, decimals=0)) + ax.set_title(f"Chip: {chip_size} x {chip_size}", fontsize=font_size) + ax.set_xticks([element + gap for element in Speedup_bar_pos]) + ax.set_xticklabels(datasets, rotation=90) + ax.xaxis.set_tick_params(labelsize=font_size) + ax.grid(axis="y", color="gray", linestyle="dashed", linewidth=1) + +# Collect legends +legends = [plot[0] for plot in plot_for_legend] +legends_text = ["Torus Time-to-Solution Decrease", "Torus Energy Increase"] +# Create a single legend for the entire figure +fig.legend( + legends, + legends_text, + loc="upper center", + bbox_to_anchor=(0.55, 1.02), + ncol=3, + prop={"size": 16}, +) + +# Add a common title +""" plt.suptitle( + 'Performance Impact of Throttle and Buffer Size', fontsize=16) """ + +# Show the plot +plt.tight_layout() +plt.subplots_adjust(wspace=0) +plt.subplots_adjust(top=0.85) +plt.show() diff --git a/Papers/ICPP_2024/Plots/number_of_rhizomes.py b/Papers/ICPP_2024/Plots/number_of_rhizomes.py new file mode 100644 index 0000000..ed23dc2 --- /dev/null +++ b/Papers/ICPP_2024/Plots/number_of_rhizomes.py @@ -0,0 +1,48 @@ +import matplotlib.pyplot as plt +import matplotlib.ticker as mtick +import numpy as np + +# Data +rhizomes = ['1', '4', '16'] + + +color_bar = '#2F5597' +hatch_bar = 'x' + +#speedup = [1,1.38, 1.63] # 64x64 speed up WK +#speedup = [1.00, 1.01, 0.94] # 64x64 speed up R22 + +color_bar = 'green' +hatch_bar = '*' + +speedup = [1.00, 1.71, 2.33] # 128x128 speed up WK +#speedup = [1.00, 1.52, 1.51] # 128x128 speed up R22 + + +bar_width = 0.7 +font_size = 20 +# Create a bar plot +plt.figure(figsize=(4, 3)) +plt.bar(rhizomes, speedup, width=bar_width, color=color_bar, + linewidth=2, edgecolor='black', hatch=hatch_bar) +""" plt.xlabel('Input Data Graph', fontsize=16) """ +plt.ylabel('Speedup', fontsize=font_size) +plt.yticks(fontsize=font_size) # Increase the y-axis tick label size +# Set y-axis ticks as percentages +# plt.gca().yaxis.set_major_formatter(mtick.PercentFormatter(100, decimals=0)) + + +""" plt.title( + f'Improvement for Different Graphs (Geometric Mean: {geometric_mean:.2f}%)', fontsize=14) """ +# plt.title('Degradation for Different Graphs', fontsize=20) +# Adjust the y-axis range if needed +plt.ylim(0.5, 2.5) #max(speedup) + 0.1) +plt.grid(axis='y', color='gray', linestyle='dashed', linewidth=1) + +plt.xticks(fontsize=font_size) # Increase the x-axis tick label size +# Add data labels above the bars +""" for i, v in enumerate(speedup): + plt.text(i, v + 5, f'{v:.2f}%', ha='center', va='bottom', fontweight='bold', fontsize=14) """ + +plt.tight_layout() +plt.show() diff --git a/Papers/ICPP_2024/Plots/speedup_vs_self_all_chips.py b/Papers/ICPP_2024/Plots/speedup_vs_self_all_chips.py new file mode 100644 index 0000000..8d3bb64 --- /dev/null +++ b/Papers/ICPP_2024/Plots/speedup_vs_self_all_chips.py @@ -0,0 +1,183 @@ +import matplotlib.pyplot as plt +import numpy as np + +datasets = ["E18", "R18", "AM", "LN", "LJ", "WK", "R22"] +datasets_R = ["E18", "R18", "AM", "LN", "LJ", "WK", "R22", "WK-Rh", "R22-Rh"] + +chip_size = ["16", "32", "64", "128"] + +apps = ["BFS", "SSSP", "Page Rank"] + + +# Performance improvement data +performance_data = { + "16": { + "E18": [1.00, 1.00, 1.00], + "R18": [1.00, 1.00, 1.00], + "AM": [1.00, 1.00, 1.00], + "LN": [1.00, 1.00, 1.00], + "LJ": [1.00, 1.00, 1.00], + "WK": [1.00, 1.00, 1.00], + "R22": [1.00, 1.00, 1.00], + }, + "32": { + "E18": [1.94, 1.92, 2.63], + "R18": [1.98, 2.01, 2.38], + "AM": [1.94, 1.79, 2.64], + "LN": [1.88, 1.79, 2.77], + "LJ": [2.00, 1.74, 2.48], + "WK": [1.98, 1.84, 2.09], + "R22": [2.13, 2.22, 2.34], + }, + "64": { + "E18": [3.77, 3.98, 6.79], + "R18": [2.63, 3.05, 5.45], + "AM": [3.73, 3.47, 6.69], + "LN": [3.57, 3.36, 6.53], + "LJ": [4.26, 4.03, 6.28], + "WK": [2.49, 1.95, 3.36], + "R22": [4.19, 4.64, 5.19], + "WK-Rh": [4.07, 4.41, 5.74], + "R22-Rh": [3.94, 4.57, 5.73], + }, + "128": { + "E18": [7.61, 7.48, 17.15], + "R18": [5.16, 4.57, 9.19], + "AM": [4.44, 4.36, 12.02], + "LN": [6.60, 5.72, 15.42], + "LJ": [9.05, 8.55, 14.70], + "WK": [2.73, 1.82, 3.75], + "R22": [5.27, 5.89, 8.24], + "WK-Rh": [6.36, 5.23, 11.33], + "R22-Rh": [7.94, 6.32, 12.35], + }, +} + +# Create subplots for each buffer size +fig, axs = plt.subplots(1, len(apps), figsize=(14, 5))#, sharey=True) + + +# Set the bar width +bar_width = 1 +num_elements = len(datasets) +thrice_bar = bar_width * 4 +gap = 0.4 + +# Initialize the list with the first element (gap) +chip_16_bar_pos = [0] +for _ in range(num_elements - 1): + # Calculate the next element and add it to the list + next_element = chip_16_bar_pos[-1] + thrice_bar + gap + chip_16_bar_pos.append(next_element) + +# Create a new positions by adding bar_width to each element of the chip_16_bar_pos +chip_32_bar_pos = [element + bar_width for element in chip_16_bar_pos] +chip_64_bar_pos = [element + bar_width for element in chip_32_bar_pos] + +# chip_32_bar_pos[-1] = chip_32_bar_pos[-1] + 3 + +chip_64_bar_pos.append(chip_64_bar_pos[-1] + thrice_bar) +chip_64_bar_pos.append(chip_64_bar_pos[-1] + thrice_bar) +chip_128_bar_pos = [element + bar_width for element in chip_64_bar_pos] + +# Loop through buffer sizes and create a subplot for each +plot_for_legend = [] +for i, app in enumerate(apps): + ax = axs[i] + + # Extract data for the current buffer size + data_16 = [performance_data["16"][dataset][i] for dataset in datasets] + data_32 = [performance_data["32"][dataset][i] for dataset in datasets] + data_64 = [performance_data["64"][dataset][i] for dataset in datasets_R] + data_128 = [performance_data["128"][dataset][i] for dataset in datasets_R] + + # Create bars + bar1 = ax.bar( + chip_16_bar_pos, + data_16, + align="center", + width=bar_width, + label="16", + color="#B00002", + linewidth=0.8, + edgecolor="black", + hatch="///", + ) + bar2 = ax.bar( + chip_32_bar_pos, + data_32, + align="center", + width=bar_width, + label="32", + color="yellow", + linewidth=0.8, + edgecolor="black", + hatch="--", + ) + + bar3 = ax.bar( + chip_64_bar_pos, + data_64, + align="center", + width=bar_width, + label="64", + color="#2F5597", + linewidth=0.8, + edgecolor="black", + hatch="x", + ) + bar4 = ax.bar( + chip_128_bar_pos, + data_128, + align="center", + width=bar_width, + label="128", + color="green", + linewidth=0.8, + edgecolor="black", + hatch="*", + ) + + # Add a vertical line between the bars + line_pos = chip_32_bar_pos[-1] + 9 * gap + print(f"line_pos: {line_pos}") + ax.axvline(x=line_pos, color="black", linestyle="--") + + # Set labels and ticks + if i == 0: + plot_for_legend.append(bar1) + plot_for_legend.append(bar2) + plot_for_legend.append(bar3) + plot_for_legend.append(bar4) + ax.set_title(f"{app}", fontsize=18) + ax.set_ylabel("Speed Up", fontsize=14) + ax.yaxis.set_tick_params(labelsize=14) + ax.set_yticks([0, 4, 8, 16, 18]) + ax.set_xticks([element for element in chip_64_bar_pos]) + ax.set_xticklabels(datasets_R, rotation=90) + ax.xaxis.set_tick_params(labelsize=14) + ax.grid(axis="y", color="gray", linestyle="dashed", linewidth=1) + + +# Collect legends +legends = [plot[0] for plot in plot_for_legend] +legends_text = ["Chip: 16x16", "Chip: 32x32", "Chip: 64x64", "Chip: 128x128"] +# Create a single legend for the entire figure +fig.legend( + legends, + legends_text, + loc="upper center", + bbox_to_anchor=(0.55, 1.02), + ncol=5, + prop={"size": 12}, +) + +# Add a common title +""" plt.suptitle( + 'Performance Impact of Throttle and Buffer Size', fontsize=16) """ + +# Show the plot +plt.tight_layout() +plt.subplots_adjust(wspace=0.25) +plt.subplots_adjust(top=0.85) +plt.show() diff --git a/Papers/ICPP_2024/Runs/am_bfs/am_bfs.csv b/Papers/ICPP_2024/Runs/am_bfs/am_bfs.csv new file mode 100644 index 0000000..ced79cd --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_bfs/am_bfs.csv @@ -0,0 +1,33 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,13736,2329764,535978,1793786,535978,492742,2004,63.7385,41232,767810,43236,199120373,128,128,20,20,1,ON,1,431800,181,112000,532.9144041378895,0.0023205409481663647,1.3736e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,9018,2072125,471083,1601042,471083,438179,2921,53.1317,29983,673935,32904,132630726,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.003071835733649794,9.018e-06,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,MESH,OFF,ON,4,92183,2738471,675140,2063331,675140,577746,8748,93.4325,88646,1356693,97394,28931771,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.0017707635384687983,9.2183e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,42232,2156471,507988,1648483,507988,455835,14634,97.9098,37519,915631,52153,17246799,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0019506197488199698,4.2232e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,MESH,OFF,ON,4,46916,2559464,622429,1937035,622429,540082,3647,86.5053,78700,1227930,82347,54019416,32,32,20,20,1,ON,1,431800,45,1112000,313.85509546409753,0.0019518245050786154,4.6916e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,20966,2017466,477665,1539801,477665,426636,4138,93.0715,46891,1301838,51029,32308339,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.002239630591049491,2.0966e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,MESH,OFF,ON,4,23995,2340733,556548,1784185,556548,494727,2013,77.9553,59808,1025048,61821,99394247,64,64,20,20,1,ON,1,431800,90,728000,824.4987380207738,0.002900242856890974,2.3995e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,10689,1949062,457247,1491815,457247,412180,3017,82.3299,42050,1160417,45067,62445601,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.003557533890555625,1.0689e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,MESH,OFF,ON,4,15038,2298450,529710,1768740,529710,486013,1971,57.8202,41726,741619,43697,196201271,128,128,20,20,1,ON,1,431800,181,112000,532.9144041378895,0.002287960122626101,1.5038e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,8708,2317611,531911,1785700,531911,489998,4342,57.911,37571,795003,41913,148340049,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.003434395300664184,8.708e-06,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,MESH,OFF,ON,4,97932,2871378,707825,2163553,707825,605899,8891,92.8619,93035,1376355,101926,30243326,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.0018517244972002611,9.7932e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,38657,1955580,457097,1498483,457097,413886,12040,97.4055,31171,824866,43211,15641569,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0017691984635113157,3.8657e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,MESH,OFF,ON,4,48507,2618345,639698,1978647,639698,552679,3763,86.073,83256,1260718,87019,55373439,32,32,20,20,1,ON,1,431800,45,1112000,313.85509546409753,0.002000983984808666,4.8507e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,20553,1977650,467440,1510210,467440,418306,4176,92.9021,44958,1271649,49134,31636796,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0021930970590165566,2.0553e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,MESH,OFF,ON,4,23210,2360225,562318,1797907,562318,498750,2008,80.3341,61560,1102007,63568,100318659,64,64,20,20,1,ON,1,431800,90,728000,824.4987380207738,0.0029256620891100027,2.321e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,13280,2093013,494751,1598262,494751,442575,2831,80.8534,49345,886079,52176,67034698,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.0038217718316437646,1.328e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,MESH,OFF,ON,4,16437,2539855,590122,1949733,590122,536460,2127,58.5432,51535,812672,53662,216250578,128,128,20,20,1,ON,1,431800,181,112000,532.9144041378895,0.002521678203013578,1.6437e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,8995,2187341,499475,1687866,499475,462280,2773,57.7215,34422,726653,37195,139950568,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0032408898462194463,8.995e-06,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,MESH,OFF,ON,4,96656,2899063,712922,2186141,712922,611687,8961,93.5097,92274,1404097,101235,30575723,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.0018710751663488095,9.6656e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,41934,2123740,500105,1623635,500105,449300,14316,97.7242,36489,901078,50805,16990192,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0019217313465054258,4.1934e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,MESH,OFF,ON,4,47979,2639555,644197,1995358,644197,557244,3784,88.628,83169,1235004,86953,55818147,32,32,20,20,1,ON,1,431800,45,1112000,313.85509546409753,0.0020165127827319607,4.7979e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,22306,2171094,514610,1656484,514610,459231,4400,94.1564,50979,1394759,55379,34741503,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0024081677622008065,2.2306e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,MESH,OFF,ON,4,25495,2479835,594537,1885298,594537,524290,2156,77.8297,68091,1117514,70247,105034784,64,64,20,20,1,ON,1,431800,90,728000,824.4987380207738,0.0030650891973499853,2.5495e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,12598,1944352,456822,1487530,456822,411478,2691,78.614,42653,952268,45344,62227344,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.00354810451403257,1.2598e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,MESH,OFF,ON,4,17950,2737090,643778,2093312,643778,577433,2274,60.4141,64071,915787,66345,232764938,128,128,20,20,1,ON,1,431800,181,112000,532.9144041378895,0.002714543254881548,1.795e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,9410,2127313,484992,1642321,484992,450019,3247,53.6132,31726,718790,34973,136157837,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0031536770622472864,9.41e-06,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,MESH,OFF,ON,4,92742,2727854,670074,2057780,670074,576166,8412,92.5018,85496,1305460,93908,28770332,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.001761336431292995,9.2742e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,40707,2064580,485421,1579159,485421,436870,13576,97.5232,34975,872934,48551,16527741,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0018693799122177395,4.0707e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,MESH,OFF,ON,4,46741,2546583,619748,1926835,619748,537804,3447,87.2943,78497,1234762,81944,53898027,32,32,20,20,1,ON,1,431800,45,1112000,313.85509546409753,0.0019473711073383297,4.6741e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,19931,1966623,465973,1500650,465973,416170,4014,94.9661,45789,1265466,49803,31495542,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0021829902413374323,1.9931e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,MESH,OFF,ON,4,24593,2409475,575293,1834182,575293,509119,2098,78.069,64076,1096088,66174,102306239,64,64,20,20,1,ON,1,431800,90,728000,824.4987380207738,0.0029850625389728205,2.4593e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,10359,1910509,447005,1463504,447005,403899,2894,82.8761,40212,1116505,43106,61166525,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.0034844939495483314,1.0359e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/am_bfs/experiment_5.zsh b/Papers/ICPP_2024/Runs/am_bfs/experiment_5.zsh new file mode 100755 index 0000000..a04bb3c --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_bfs/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") + +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "true" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/am_bfs/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/am_bfs/job_cca_am.sh b/Papers/ICPP_2024/Runs/am_bfs/job_cca_am.sh new file mode 100644 index 0000000..69c94a3 --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_bfs/job_cca_am.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J bfs-am-cca +#SBATCH -p general +#SBATCH -o am-bfs_%j.txt +#SBATCH -e am-bfs_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=01:15:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/am_bfs + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=3148000 +VICINITY[16]=1 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=1112000 +VICINITY[32]=1 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=728000 +VICINITY[64]=1 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=112000 +VICINITY[128]=1 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=4096 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + #max_edges=20 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=16384 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_bfs_am.zsh + done + done +done + diff --git a/Papers/ICS_2024/Runs/Page_Rank/run_pagerank_amazon.zsh b/Papers/ICPP_2024/Runs/am_bfs/run_bfs_am.zsh similarity index 59% rename from Papers/ICS_2024/Runs/Page_Rank/run_pagerank_amazon.zsh rename to Papers/ICPP_2024/Runs/am_bfs/run_bfs_am.zsh index 49f786c..0439970 100755 --- a/Papers/ICS_2024/Runs/Page_Rank/run_pagerank_amazon.zsh +++ b/Papers/ICPP_2024/Runs/am_bfs/run_bfs_am.zsh @@ -1,10 +1,7 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/PageRank_Nested_Fixed_Iterations_CCASimulator" - # Define other command-line arguments -GRAPH_TYPE="Amazon" +GRAPH_TYPE="AM" OUTPUT_DIR="." SHAPE="square" ROOT_NODE="0" @@ -14,8 +11,7 @@ HY="128" HDEPTH="0" HB="0" ROUTE="0" -ITER="1" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -37,14 +33,14 @@ while [[ $# -gt 0 ]]; do DATASET_PATH="$2" shift 2 ;; - -iter) - ITER="$2" - shift 2 - ;; -network) NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -52,7 +48,15 @@ while [[ $# -gt 0 ]]; do esac done -INPUT_FILE="$DATASET_PATH/muchiSim/amazon0302.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY -iter $ITER +INPUT_FILE="$DATASET_PATH/Real/amazon0302.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/BFS_Rhizome_CCASimulator" +# Run the command +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/am_pagerank/am_pagerank.csv b/Papers/ICPP_2024/Runs/am_pagerank/am_pagerank.csv new file mode 100644 index 0000000..5bb6ce5 --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_pagerank/am_pagerank.csv @@ -0,0 +1,17 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,14917,1496989,1496989,0,524222,524222,0,40.9542,0,235838,0,79052916,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0018462659409519272,1.4917e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,175546,1496989,1496989,0,524222,524222,0,86.3516,0,638522,0,9872310,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0011857393108379109,0.000175546,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,68650,1496989,1496989,0,524222,524222,0,78.3104,0,743017,0,19759339,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0014087708048301604,6.865e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,26942,1496989,1496989,0,524222,524222,0,69.4457,0,678663,0,39519903,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.00228875536818378,2.6942e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,14588,1496989,1496989,0,524222,524222,0,41.924,0,240169,0,79053115,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0018459591593094611,1.4588e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,179457,1496989,1496989,0,524222,524222,0,85.2898,0,644295,0,9882036,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.001188450139592725,0.000179457,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,67834,1496989,1496989,0,524222,524222,0,78.9599,0,763351,0,19761768,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0014084584386334917,6.7834e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,27436,1496989,1496989,0,524222,524222,0,69.2006,0,676147,0,39520334,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.0022895394780464953,2.7436e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,14750,1496989,1496989,0,524222,524222,0,41.5219,0,243067,0,79017048,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0018452816741175958,1.475e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,175319,1496989,1496989,0,524222,524222,0,86.9404,0,644005,0,9880364,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0011865436732248825,0.000175319,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,66830,1496989,1496989,0,524222,524222,0,78.9633,0,770057,0,19752502,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.001407232324626506,6.683e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,26218,1496989,1496989,0,524222,524222,0,70.5834,0,711445,0,39518015,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.0022875350999248304,2.6218e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,14673,1496989,1496989,0,524222,524222,0,41.6107,0,233289,0,79039854,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0018457341366719775,1.4673e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,180017,1496989,1496989,0,524222,524222,0,85.152,0,641476,0,9876400,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0011880539977239535,0.000180017,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,66350,1496989,1496989,0,524222,524222,0,79.4113,0,767209,0,19750929,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0014068423818361232,6.635e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,26467,1496989,1496989,0,524222,524222,0,69.9537,0,716813,0,39548939,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.0022896678089789364,2.6467e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/am_pagerank/experiment_5.zsh b/Papers/ICPP_2024/Runs/am_pagerank/experiment_5.zsh new file mode 100755 index 0000000..cbed9bd --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_pagerank/experiment_5.zsh @@ -0,0 +1,153 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("1") + +NETWORK="1" # TORUS +#NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Page_Rank_Fixed_Iterations_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/am_pagerank/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/am_pagerank/job_cca_am.sh b/Papers/ICPP_2024/Runs/am_pagerank/job_cca_am.sh new file mode 100644 index 0000000..567f56f --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_pagerank/job_cca_am.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J pr-am-cca +#SBATCH -p general +#SBATCH -o am-pr_%j.txt +#SBATCH -e am-pr_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:55:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=3148000 +VICINITY[16]=1 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=1112000 +VICINITY[32]=1 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=728000 +VICINITY[64]=1 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=112000 +VICINITY[128]=1 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=32768 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + #max_edges=20 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=32768 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_pagerank_am.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/am_pagerank/run_pagerank_am.zsh b/Papers/ICPP_2024/Runs/am_pagerank/run_pagerank_am.zsh new file mode 100755 index 0000000..42e37da --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_pagerank/run_pagerank_am.zsh @@ -0,0 +1,62 @@ +#!/bin/zsh + +# Define other command-line arguments +GRAPH_TYPE="AM" +OUTPUT_DIR="." +SHAPE="square" +ROOT_NODE="0" +MEMORY_CC="22528" +HX="128" +HY="128" +HDEPTH="0" +HB="0" +ROUTE="0" +NETWORK="0" # 0: Mesh, 1: Torus +VERIFY="" # "-verify" + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -hx) + HX="$2" + shift 2 + ;; + -hy) + HY="$2" + shift 2 + ;; + -m) + MEMORY_CC="$2" + shift 2 + ;; + -dataset) + DATASET_PATH="$2" + shift 2 + ;; + -network) + NETWORK="$2" + shift 2 + ;; + -trail) + TRAIL="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +INPUT_FILE="$DATASET_PATH/Real/amazon0302.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/PageRank_Fixed_Iterations_Rhizome_CCASimulator" + +# Run the command +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -iter 1 -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/am_sssp/am_sssp.csv b/Papers/ICPP_2024/Runs/am_sssp/am_sssp.csv new file mode 100644 index 0000000..fa6f8de --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_sssp/am_sssp.csv @@ -0,0 +1,33 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,24039,4522353,1116172,3406181,1116172,952664,4653,72.6888,158855,1714038,163508,384269217,128,128,20,20,1,ON,1,431800,181,112000,532.9144041378895,0.004476370775922109,2.4039e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,15514,4351561,1078376,3273185,1078376,916979,7451,71.0583,153946,1737248,161397,278279195,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.00644237018761466,1.5514e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,MESH,OFF,ON,4,154320,4695744,1206614,3489130,1206614,989338,18921,94.8372,198355,2337105,217276,49370597,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.003020791473089959,0.00015432,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,60721,3116365,787088,2329277,787088,658542,36042,98.4975,92504,1371537,128546,24929348,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0028196235641398783,6.0721e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,MESH,OFF,ON,4,70457,4201191,1082106,3119085,1082106,885037,8543,92.3073,188526,2121111,197069,88609637,32,32,20,20,1,ON,1,431800,45,1112000,313.85509546409753,0.003198104344819174,7.0457e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,34562,3421241,863909,2557332,863909,722007,10677,96.1365,131225,2282086,141902,54760414,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0037957007075485323,3.4562e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,MESH,OFF,ON,4,38276,4224526,1076575,3147951,1076575,889359,5314,85.4759,181902,2011829,187216,178489933,64,64,20,20,1,ON,1,431800,90,728000,824.4987380207738,0.00520120026405873,3.8276e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +0,TORUS,OFF,ON,4,20910,3703207,938397,2764810,938397,781023,6899,87.3903,150475,2257724,157374,118481811,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.006751229364276104,2.091e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,MESH,OFF,ON,4,24423,4685215,1156720,3528495,1156720,986185,4642,72.8294,165893,1735559,170535,396699527,128,128,20,20,1,ON,1,431800,181,112000,532.9144041378895,0.004620867865647448,2.4423e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,15182,4048188,993250,3054938,993250,852801,7587,65.6709,132862,1522029,140449,258676005,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.005989229280362455,1.5182e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,MESH,OFF,ON,4,135904,4123039,1071503,3051536,1071503,867707,17735,95.2196,186061,2118760,203796,43446141,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.002658357415285767,0.000135904,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,64957,3325505,836650,2488855,836650,702234,36871,98.4661,97545,1471102,134416,26618660,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0030107197961521453,6.4957e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,MESH,OFF,ON,4,75975,4550276,1178673,3371603,1178673,957600,9110,92.3866,211963,2322077,221073,95962065,32,32,20,20,1,ON,1,431800,45,1112000,313.85509546409753,0.0034633082015366,7.5975e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,34839,3427280,869739,2557541,869739,722836,10962,96.0259,135941,2353057,146903,54830408,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0038007154316865095,3.4839e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,MESH,OFF,ON,4,37360,4140800,1051711,3089089,1051711,871726,5168,86.6396,174817,1977846,179985,175166091,64,64,20,20,1,ON,1,431800,90,728000,824.4987380207738,0.005103994277194796,3.736e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +1,TORUS,OFF,ON,4,17511,3344858,838046,2506812,838046,705402,6886,88.4996,125758,2141874,132644,106977949,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.006093582480469814,1.7511e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,MESH,OFF,ON,4,25741,4780243,1172579,3607664,1172579,1007438,5059,69.9059,160082,1684132,165141,403584423,128,128,20,20,1,ON,1,431800,181,112000,532.9144041378895,0.004701931820842908,2.5741e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,13936,4344654,1071714,3272940,1071714,915303,7680,73.1472,148731,1663401,156411,277832403,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0064305345224370675,1.3936e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,MESH,OFF,ON,4,144566,4348236,1125914,3222322,1125914,915584,18040,95.0648,192290,2187732,210330,45681645,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.0027958704279061526,0.000144566,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,63025,3234830,817044,2417786,817044,683026,38005,98.2184,96013,1417582,134018,25880305,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.002927174555277536,6.3025e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,MESH,OFF,ON,4,76455,4610981,1182866,3428115,1182866,971082,9025,92.6193,202759,2320136,211784,97127429,32,32,20,20,1,ON,1,431800,45,1112000,313.85509546409753,0.0035050763327119346,7.6455e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,34049,3352574,848166,2504408,848166,707449,10705,96.0137,130012,2283931,140717,53642374,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0037183293359290418,3.4049e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,MESH,OFF,ON,4,36246,3861931,975884,2886047,975884,812899,4754,83.6092,158231,1861694,162985,163614404,64,64,20,20,1,ON,1,431800,90,728000,824.4987380207738,0.0047694304307669515,3.6246e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +2,TORUS,OFF,ON,4,18551,3520065,882767,2637298,882767,743002,7478,88.3396,132287,2250736,139765,112615308,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.006414872474310822,1.8551e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,MESH,OFF,ON,4,24610,4535838,1109359,3426479,1109359,955956,4765,69.1236,148638,1624390,153403,384267630,128,128,20,20,1,ON,1,431800,181,112000,532.9144041378895,0.00447690089164309,2.461e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,14515,4049334,988580,3060754,988580,854154,7357,67.045,127069,1565613,134426,258828555,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0059920940432891985,1.4515e-05,15.998,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,MESH,OFF,ON,4,146004,4371982,1147375,3224607,1147375,920927,19113,94.5424,207335,2264339,226448,45992622,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.0028151378439759092,0.000146004,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,63936,3265986,823142,2442844,823142,690450,36464,98.2929,96228,1445557,132692,26122194,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.002954662715734772,6.3936e-05,1023.88,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,MESH,OFF,ON,4,72363,4321940,1111491,3210449,1111491,911032,8325,92.2985,192134,2172592,200459,91245516,32,32,20,20,1,ON,1,431800,45,1112000,313.85509546409753,0.003293102091212204,7.2363e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,33906,3343535,846473,2497062,846473,704643,10505,95.8254,131325,2273274,141830,53491075,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.003707818557494513,3.3906e-05,255.969,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,MESH,OFF,ON,4,39870,4437167,1120935,3316232,1120935,934469,5314,86.0629,181152,2065031,186466,187673649,64,64,20,20,1,ON,1,431800,90,728000,824.4987380207738,0.0054681726286948985,3.987e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY +3,TORUS,OFF,ON,4,20195,3464043,872570,2591473,872570,730371,6810,86.7544,135389,2075950,142199,110767426,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.006312633156678108,2.0195e-05,63.9922,262112,262111,1234877,PATH-TO/Datasets/Real/amazon0302.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/am_sssp/experiment_5.zsh b/Papers/ICPP_2024/Runs/am_sssp/experiment_5.zsh new file mode 100755 index 0000000..ce53bbf --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_sssp/experiment_5.zsh @@ -0,0 +1,153 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") + +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Single_Source_Shortest_Path_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "true" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/am_sssp/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/am_sssp/job_cca_am.sh b/Papers/ICPP_2024/Runs/am_sssp/job_cca_am.sh new file mode 100644 index 0000000..e4dc2a6 --- /dev/null +++ b/Papers/ICPP_2024/Runs/am_sssp/job_cca_am.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J sssp-am-cca +#SBATCH -p general +#SBATCH -o am-sssp_%j.txt +#SBATCH -e am-sssp_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=01:15:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=3148000 +VICINITY[16]=1 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=1112000 +VICINITY[32]=1 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=728000 +VICINITY[64]=1 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=112000 +VICINITY[128]=1 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=4096 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + #max_edges=20 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=16384 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_sssp_am.zsh + done + done +done + diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_amazon.zsh b/Papers/ICPP_2024/Runs/am_sssp/run_sssp_am.zsh similarity index 58% rename from Papers/ICS_2024/Runs/SSSP/run_sssp_amazon.zsh rename to Papers/ICPP_2024/Runs/am_sssp/run_sssp_am.zsh index a9e7b99..32138fe 100755 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_amazon.zsh +++ b/Papers/ICPP_2024/Runs/am_sssp/run_sssp_am.zsh @@ -1,10 +1,7 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/SSSP_CCASimulator" - # Define other command-line arguments -GRAPH_TYPE="Amazon" +GRAPH_TYPE="AM" OUTPUT_DIR="." SHAPE="square" ROOT_NODE="0" @@ -14,7 +11,7 @@ HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -40,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -47,6 +48,15 @@ while [[ $# -gt 0 ]]; do esac done -INPUT_FILE="$DATASET_PATH/muchiSim/amazon0302.edgelist" +INPUT_FILE="$DATASET_PATH/Real/amazon0302.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/SSSP_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/er18_bfs/er_bfs.csv b/Papers/ICPP_2024/Runs/er18_bfs/er_bfs.csv new file mode 100644 index 0000000..52cf13a --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_bfs/er_bfs.csv @@ -0,0 +1,33 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,17086,3647515,572537,3074978,572537,405547,916,81.8572,166074,2540982,166990,313022995,128,128,20,20,1,ON,1,431800,181,52000,263.58837674062926,0.0025617237056013028,1.7086e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,9192,3251741,502884,2748857,502884,361455,1642,81.9639,139787,2412069,141429,208233414,128,128,20,20,1,ON,1,431800,90,52000,269.6724221032666,0.0034085948140410967,9.192e-06,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,142033,3897533,651345,3246188,651345,433210,8658,90.8439,209477,2620491,218135,41357077,16,16,20,20,1,ON,1,431800,22,1148000,80.9887053728737,0.0015245521525666715,0.000142033,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,68882,3393523,541173,2852350,541173,376993,20182,98.5718,143998,2190313,164180,27144243,16,16,20,20,1,ON,1,431800,11,1148000,81.08376858166491,0.0018559331282869413,6.8882e-05,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,71721,3687094,602833,3084261,602833,409886,2782,86.6222,190165,2649082,192947,78787702,32,32,20,20,1,ON,1,431800,45,512000,145.52632834080987,0.0019337346072315904,7.1721e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,35758,3329876,527896,2801980,527896,370032,5007,95.0426,152857,2613514,157864,53248983,32,32,20,20,1,ON,1,431800,22,512000,145.9065811759747,0.0025141484340856293,3.5758e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,33996,3489717,553585,2936132,553585,388005,1405,83.6084,164175,2506839,165580,149635866,64,64,20,20,1,ON,1,431800,90,328000,375.6220256920066,0.0029362886915277934,3.3996e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,17770,3167942,483051,2684891,483051,352132,1944,88.9109,128975,2460231,130919,101375424,64,64,20,20,1,ON,1,431800,45,328000,377.143037032666,0.003899635939924834,1.777e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,15379,3419587,529534,2890053,529534,380152,872,84.9264,148510,2386641,149382,293420121,128,128,20,20,1,ON,1,431800,181,52000,263.58837674062926,0.0024009862652740626,1.5379e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,8919,3134078,471585,2662493,471585,348425,1448,81.6142,121712,2310481,123160,200616523,128,128,20,20,1,ON,1,431800,90,52000,269.6724221032666,0.003283885774227974,8.919e-06,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,138709,3759852,623335,3136517,623335,417845,8209,89.8302,197281,2515237,205490,39919886,16,16,20,20,1,ON,1,431800,22,1148000,80.9887053728737,0.0014717860585102512,0.000138709,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,67557,3303619,524122,2779497,524122,367217,19197,98.0931,137708,2128287,156905,26426218,16,16,20,20,1,ON,1,431800,11,1148000,81.08376858166491,0.0018069020787288424,6.7557e-05,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,72721,3613089,586615,3026474,586615,401480,2745,83.9329,182390,2588311,185135,77217184,32,32,20,20,1,ON,1,431800,45,512000,145.52632834080987,0.0018958247726940723,7.2721e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,34624,3277412,516567,2760845,516567,364372,4907,96.3455,147288,2572110,152195,52418228,32,32,20,20,1,ON,1,431800,22,512000,145.9065811759747,0.0024747529939251663,3.4624e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,32706,3515622,564433,2951189,564433,390941,1582,86.7446,171910,2540172,173492,150736643,64,64,20,20,1,ON,1,431800,90,328000,375.6220256920066,0.0029568535687038906,3.2706e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,17784,3167100,488030,2679070,488030,352073,2098,88.7729,133859,2468908,135957,101330174,64,64,20,20,1,ON,1,431800,45,328000,377.143037032666,0.0038979358388355236,1.7784e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,16613,3545929,560106,2985823,560106,394429,927,81.9206,164750,2485277,165677,304337368,128,128,20,20,1,ON,1,431800,181,52000,263.58837674062926,0.002490657248465283,1.6613e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,8803,3114755,468081,2646674,468081,346324,1429,81.8933,120328,2303980,121757,199309633,128,128,20,20,1,ON,1,431800,90,52000,269.6724221032666,0.0032624690926656903,8.803e-06,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,139707,3890546,649967,3240579,649967,432461,8702,92.041,208804,2598336,217506,41331939,16,16,20,20,1,ON,1,431800,22,1148000,80.9887053728737,0.0015232681455019182,0.000139707,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,69007,3371224,533246,2837978,533246,374684,19510,97.9914,139052,2169587,158562,26965648,16,16,20,20,1,ON,1,431800,11,1148000,81.08376858166491,0.0018437898660580495,6.9007e-05,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,70839,3659649,595899,3063750,595899,406495,2819,86.5463,186585,2629738,189404,78180234,32,32,20,20,1,ON,1,431800,45,512000,145.52632834080987,0.0019187286102576664,7.0839e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,35228,3252343,511747,2740596,511747,361367,4868,94.4112,145512,2553899,150380,52014915,32,32,20,20,1,ON,1,431800,22,512000,145.9065811759747,0.002455943836758931,3.5228e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,35435,3543622,563887,2979735,563887,393951,1495,82.0107,168441,2546784,169936,151854863,64,64,20,20,1,ON,1,431800,90,328000,375.6220256920066,0.002980495392112096,3.5435e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,18372,3275014,509513,2765501,509513,363926,2176,88.6434,143411,2553745,145587,104755893,64,64,20,20,1,ON,1,431800,45,328000,377.143037032666,0.004029731272341998,1.8372e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,15991,3665766,596232,3069534,596232,407578,978,87.8518,187676,2587548,188654,314905388,128,128,20,20,1,ON,1,431800,181,52000,263.58837674062926,0.0025766842460989395,1.5991e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,8865,3114072,467510,2646562,467510,346215,1420,81.4045,119875,2300325,121295,199179980,128,128,20,20,1,ON,1,431800,90,52000,269.6724221032666,0.0032603792613575115,8.865e-06,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,142131,3856787,640717,3216070,640717,428812,8700,90.0275,203205,2574856,211905,40902150,16,16,20,20,1,ON,1,431800,22,1148000,80.9887053728737,0.0015080241493993028,0.000142131,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,67033,3285550,517626,2767924,517626,365221,18669,98.3235,133736,2126006,152405,26282123,16,16,20,20,1,ON,1,431800,11,1148000,81.08376858166491,0.0017970091925752652,6.7033e-05,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,69860,3606544,587242,3019302,587242,400868,2867,86.6412,183507,2588827,186374,77083448,32,32,20,20,1,ON,1,431800,45,512000,145.52632834080987,0.0018918084073316702,6.986e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,35083,3236725,507785,2728940,507785,359782,4588,94.4604,143415,2543513,148003,51797249,32,32,20,20,1,ON,1,431800,22,512000,145.9065811759747,0.0024456530163023044,3.5083e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,33813,3505221,558378,2946843,558378,389627,1467,84.2788,167284,2530228,168751,150354605,64,64,20,20,1,ON,1,431800,90,328000,375.6220256920066,0.0029501585680154862,3.3813e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,17820,3213704,499165,2714539,499165,357220,2230,89.1182,139715,2510384,141945,102857401,64,64,20,20,1,ON,1,431800,45,328000,377.143037032666,0.0039565378850214845,1.782e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/er18_bfs/experiment_5.zsh b/Papers/ICPP_2024/Runs/er18_bfs/experiment_5.zsh new file mode 100755 index 0000000..802d029 --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_bfs/experiment_5.zsh @@ -0,0 +1,148 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") + +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE=4096 \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/erdos_18_bfs/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/er18_bfs/job_cca_erdos.sh b/Papers/ICPP_2024/Runs/er18_bfs/job_cca_erdos.sh new file mode 100644 index 0000000..e1f5641 --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_bfs/job_cca_erdos.sh @@ -0,0 +1,91 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J bfs-erdos-cca +#SBATCH -p general +#SBATCH -o erdos-bfs_%j.txt +#SBATCH -e erdos-bfs_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:30:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=1148000 +VICINITY[16]=1 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=512000 +VICINITY[32]=1 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=328000 +VICINITY[64]=1 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=52000 +VICINITY[128]=1 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") + +for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=20 + + vicinity=${CHIP_DIM} + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -script run_bfs_erdos.zsh + done +done + diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_18.zsh b/Papers/ICPP_2024/Runs/er18_bfs/run_bfs_erdos.zsh similarity index 65% rename from Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_18.zsh rename to Papers/ICPP_2024/Runs/er18_bfs/run_bfs_erdos.zsh index 44fded1..c0e5122 100755 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_18.zsh +++ b/Papers/ICPP_2024/Runs/er18_bfs/run_bfs_erdos.zsh @@ -1,8 +1,5 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/SSSP_CCASimulator" - # Define other command-line arguments GRAPH_TYPE="Erdos" OUTPUT_DIR="." @@ -14,7 +11,7 @@ HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -40,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -48,5 +49,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/BFS_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY -shuffle +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/er18_pagerank/er_pagerank.csv b/Papers/ICPP_2024/Runs/er18_pagerank/er_pagerank.csv new file mode 100644 index 0000000..59d8d04 --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_pagerank/er_pagerank.csv @@ -0,0 +1,17 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,13557,2621545,2621545,0,524366,524366,0,73.1873,0,1692922,0,151046994,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0035117489104220497,1.3557e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,231305,2621545,2621545,0,524366,524366,0,84.6908,0,1618595,0,18873846,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.002221746732738909,0.000231305,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,88557,2621545,2621545,0,524366,524366,0,80.5681,0,1799445,0,37739839,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0026639476569944812,8.8557e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,35935,2621545,2621545,0,524366,524366,0,75.3263,0,1776018,0,75507397,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.004347254404929231,3.5935e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,13373,2621545,2621545,0,524366,524366,0,73.378,0,1689944,0,150966592,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.003509722715768512,1.3373e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,229341,2621545,2621545,0,524366,524366,0,85.3406,0,1624079,0,18873227,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.0022208613552656357,0.000229341,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,88004,2621545,2621545,0,524366,524366,0,81.1037,0,1822470,0,37754242,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.00266461224899506,8.8004e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,35456,2621545,2621545,0,524366,524366,0,75.9369,0,1759678,0,75529425,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.004347764160627609,3.5456e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,13468,2621545,2621545,0,524366,524366,0,73.4984,0,1693534,0,151003879,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.0035106715284146054,1.3468e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,233614,2621545,2621545,0,524366,524366,0,84.1272,0,1621425,0,18876523,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.002223005147483628,0.000233614,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,89282,2621545,2621545,0,524366,524366,0,79.7014,0,1801816,0,37751764,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.0026651925703874827,8.9282e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,35137,2621545,2621545,0,524366,524366,0,74.9803,0,1797646,0,75496713,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.004345422628212168,3.5137e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,13600,2621545,2621545,0,524366,524366,0,73.5362,0,1695921,0,151038321,128,128,20,20,1,ON,1,431800,90,112000,538.9984495005268,0.003511589823392437,1.36e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,231708,2621545,2621545,0,524366,524366,0,85.1188,0,1619753,0,18874835,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.002222024591669263,0.000231708,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,87041,2621545,2621545,0,524366,524366,0,80.813,0,1829170,0,37757339,32,32,20,20,1,ON,1,431800,22,1112000,314.23534829926245,0.00266425943889658,8.7041e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,33781,2621545,2621545,0,524366,524366,0,78.2207,0,1803273,0,75488569,64,64,20,20,1,ON,1,431800,45,728000,826.019749361433,0.004342876424054495,3.3781e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/er18_pagerank/experiment_5.zsh b/Papers/ICPP_2024/Runs/er18_pagerank/experiment_5.zsh new file mode 100755 index 0000000..482f54b --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_pagerank/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("1") + +NETWORK="1" # TORUS +#NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Page_Rank_Fixed_Iterations_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/erdos_18_pagerank/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/er18_pagerank/job_cca_erdos.sh b/Papers/ICPP_2024/Runs/er18_pagerank/job_cca_erdos.sh new file mode 100644 index 0000000..b324e7e --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_pagerank/job_cca_erdos.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J pr-erdos-cca +#SBATCH -p general +#SBATCH -o erdos-pr_%j.txt +#SBATCH -e erdos-pr_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:55:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=3148000 +VICINITY[16]=1 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=1112000 +VICINITY[32]=1 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=728000 +VICINITY[64]=1 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=112000 +VICINITY[128]=1 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=32768 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + #max_edges=20 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=32768 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_pagerank_erdos.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/er18_pagerank/run_pagerank_erdos.zsh b/Papers/ICPP_2024/Runs/er18_pagerank/run_pagerank_erdos.zsh new file mode 100755 index 0000000..cf837c0 --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_pagerank/run_pagerank_erdos.zsh @@ -0,0 +1,62 @@ +#!/bin/zsh + +# Define other command-line arguments +GRAPH_TYPE="Erdos" +OUTPUT_DIR="." +SHAPE="square" +ROOT_NODE="0" +MEMORY_CC="22528" +HX="128" +HY="128" +HDEPTH="0" +HB="0" +ROUTE="0" +NETWORK="0" # 0: Mesh, 1: Torus +VERIFY="" # "-verify" + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -hx) + HX="$2" + shift 2 + ;; + -hy) + HY="$2" + shift 2 + ;; + -m) + MEMORY_CC="$2" + shift 2 + ;; + -dataset) + DATASET_PATH="$2" + shift 2 + ;; + -network) + NETWORK="$2" + shift 2 + ;; + -trail) + TRAIL="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +INPUT_FILE="$DATASET_PATH/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/PageRank_Fixed_Iterations_Rhizome_CCASimulator" + +# Run the command +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -iter 1 -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/er18_sssp/er_sssp.csv b/Papers/ICPP_2024/Runs/er18_sssp/er_sssp.csv new file mode 100644 index 0000000..eedefcd --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_sssp/er_sssp.csv @@ -0,0 +1,33 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,29851,6299653,1139401,5160252,1139401,700564,2317,82.4687,436520,4419338,438837,543034401,128,128,20,20,1,ON,1,431800,181,82000,398.2513904392594,0.005462609990526929,2.9851e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,14968,5793893,1030077,4763816,1030077,644380,4184,88.3889,381513,4336842,385697,370931954,128,128,20,20,1,ON,1,431800,90,82000,404.3354358018968,0.007432333924716905,1.4968e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,219114,6130060,1151801,4978259,1151801,681184,17344,92.787,453273,4211104,470617,65006722,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.003981974897747222,0.000219114,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,109048,5423700,1002256,4421444,1002256,602428,52089,99.1259,347739,3561943,399828,43376024,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.004905767990013124,0.000109048,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,111907,6057472,1146698,4910774,1146698,673016,6380,90.8351,467302,4445224,473682,129438539,32,32,20,20,1,ON,1,431800,45,812000,229.6907119024537,0.003994210166779776,0.000111907,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,57421,5484352,1013191,4471161,1013191,609858,12671,97.2954,390662,4432313,403333,87703310,32,32,20,20,1,ON,1,431800,22,812000,230.07096473761854,0.005200029502448898,5.7421e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,52287,5540282,1012000,4528282,1012000,615783,3190,86.7555,393027,4049744,396217,237928975,64,64,20,20,1,ON,1,431800,90,428000,487.8412037741984,0.0053231244494775535,5.2287e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,28885,5591139,1021783,4569356,1021783,621702,6038,94.5261,394043,4473990,400081,178869051,64,64,20,20,1,ON,1,431800,45,428000,489.3622151148577,0.007837053377679764,2.8885e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,31745,6414926,1166696,5248230,1166696,713358,2286,79.3234,451052,4540177,453338,552685437,128,128,20,20,1,ON,1,431800,181,82000,398.2513904392594,0.0055606802803070884,3.1745e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,14651,5746867,1023941,4722926,1023941,638963,4054,89.9748,380924,4290080,384978,367822956,128,128,20,20,1,ON,1,431800,90,82000,404.3354358018968,0.007369922302917642,1.4651e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,231069,6510542,1216114,5294428,1216114,723348,17656,92.903,475110,4448263,492766,68948273,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.004222861194480603,0.000231069,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,110062,5447288,1007131,4440157,1007131,605374,52822,98.6336,348935,3578232,401757,43543195,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.004924933974892741,0.000110062,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,119550,6395141,1205171,5189970,1205171,710536,6669,89.6874,487966,4675392,494635,136732826,32,32,20,20,1,ON,1,431800,45,812000,229.6907119024537,0.0042198315192068,0.00011955,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,58278,5581307,1042756,4538551,1042756,620340,13043,97.3024,409373,4504582,422416,89272655,32,32,20,20,1,ON,1,431800,22,812000,230.07096473761854,0.005293053373218203,5.8278e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,54617,5811078,1066112,4744966,1066112,645882,3380,87.1079,416850,4248042,420230,249550356,64,64,20,20,1,ON,1,431800,90,428000,487.8412037741984,0.005582946102647522,5.4617e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,27366,5250360,946310,4304050,946310,583293,5377,93.6881,357640,4209245,363017,168029679,64,64,20,20,1,ON,1,431800,45,428000,489.3622151148577,0.0073622737456751014,2.7366e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,30576,6488169,1178492,5309677,1178492,721550,2265,83.0746,454677,4538986,456942,559204484,128,128,20,20,1,ON,1,431800,181,82000,398.2513904392594,0.005625184297751351,3.0576e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,14788,5820233,1031934,4788299,1031934,647314,4170,89.5078,380450,4352872,384620,372720633,128,128,20,20,1,ON,1,431800,90,82000,404.3354358018968,0.007467979990123932,1.4788e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,215473,5988563,1137553,4851010,1137553,665208,17367,93.0888,454978,4148514,472345,63445312,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.0038870829845007774,0.000215473,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,110561,5505765,1011016,4494749,1011016,611762,52057,99.1061,347197,3591837,399254,44056233,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.004982576390040706,0.000110561,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,114529,6148191,1147222,5000969,1147222,683440,6173,90.0161,457609,4471636,463782,131497053,32,32,20,20,1,ON,1,431800,45,812000,229.6907119024537,0.0040579958791369655,0.000114529,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,56705,5369150,986987,4382163,986987,596875,12094,96.5038,378018,4326886,390112,85878326,32,32,20,20,1,ON,1,431800,22,812000,230.07096473761854,0.005092002980266466,5.6705e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,55893,5908775,1076966,4831809,1076966,656666,3327,86.6305,416973,4290404,420300,253756745,64,64,20,20,1,ON,1,431800,90,428000,487.8412037741984,0.0056773396639901216,5.5893e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,27747,5286866,958997,4327869,958997,587851,5567,93.0989,365579,4219997,371146,169185083,64,64,20,20,1,ON,1,431800,45,428000,489.3622151148577,0.007413101833639815,2.7747e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,29843,6033319,1075127,4958192,1075127,670873,2089,79.9996,402165,4249283,404254,519729416,128,128,20,20,1,ON,1,431800,181,82000,398.2513904392594,0.0052289990887061585,2.9843e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,14576,5689069,1015213,4673856,1015213,632903,4062,89.2411,378248,4250574,382310,363986763,128,128,20,20,1,ON,1,431800,90,82000,404.3354358018968,0.007293127037658308,1.4576e-05,16.0064,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,222123,6354273,1201553,5152720,1201553,706201,18103,94.5899,477249,4395344,495352,67326217,16,16,20,20,1,ON,1,431800,22,3148000,221.2626779756134,0.004122111661825147,0.000222123,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,112709,5594128,1036083,4558045,1036083,621934,54318,98.8935,359831,3654874,414149,44754428,16,16,20,20,1,ON,1,431800,11,3148000,221.3577411844046,0.005061748322779051,0.000112709,1024.41,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,114022,6068821,1143591,4925230,1143591,674494,6305,89.2407,462792,4451218,469097,129694855,32,32,20,20,1,ON,1,431800,45,812000,229.6907119024537,0.004002905122452165,0.000114022,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,57839,5511308,1013841,4497467,1013841,612695,12390,97.3002,388756,4454430,401146,88169069,32,32,20,20,1,ON,1,431800,22,812000,230.07096473761854,0.005227665506965411,5.7839e-05,256.103,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,57361,5910491,1095958,4814533,1095958,656913,3529,84.5618,435516,4356144,439045,253919957,64,64,20,20,1,ON,1,431800,90,428000,487.8412037741984,0.005682363420373158,5.7361e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,29487,5639240,1034154,4605086,1034154,626572,6121,93.6853,401461,4512760,407582,180381535,64,64,20,20,1,ON,1,431800,45,428000,489.3622151148577,0.007903664932571702,2.9487e-05,64.0256,262249,262144,2359296,PATH-TO/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/er18_sssp/experiment_5.zsh b/Papers/ICPP_2024/Runs/er18_sssp/experiment_5.zsh new file mode 100755 index 0000000..a1c26db --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_sssp/experiment_5.zsh @@ -0,0 +1,147 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Single_Source_Shortest_Path_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE=4096 \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "true" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/erdos_18_sssp/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/er18_sssp/job_cca_erdos.sh b/Papers/ICPP_2024/Runs/er18_sssp/job_cca_erdos.sh new file mode 100644 index 0000000..af752bd --- /dev/null +++ b/Papers/ICPP_2024/Runs/er18_sssp/job_cca_erdos.sh @@ -0,0 +1,91 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J sssp-erdos-cca +#SBATCH -p general +#SBATCH -o erdos-sssp_%j.txt +#SBATCH -e erdos-sssp_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:38:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=3148000 +VICINITY[16]=1 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=812000 +VICINITY[32]=1 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=428000 +VICINITY[64]=1 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=82000 +VICINITY[128]=1 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") + +for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=20 + + vicinity=${CHIP_DIM} + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -script run_sssp_erdos.zsh + done +done + diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_erdos_18.zsh b/Papers/ICPP_2024/Runs/er18_sssp/run_sssp_erdos.zsh similarity index 65% rename from Papers/ICS_2024/Runs/BFS/run_bfs_erdos_18.zsh rename to Papers/ICPP_2024/Runs/er18_sssp/run_sssp_erdos.zsh index 0f06686..c6770d0 100755 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_erdos_18.zsh +++ b/Papers/ICPP_2024/Runs/er18_sssp/run_sssp_erdos.zsh @@ -1,8 +1,5 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - # Define other command-line arguments GRAPH_TYPE="Erdos" OUTPUT_DIR="." @@ -14,7 +11,7 @@ HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -40,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -48,5 +49,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/SSSP_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY -shuffle +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/lj_bfs/experiment_5.zsh b/Papers/ICPP_2024/Runs/lj_bfs/experiment_5.zsh new file mode 100755 index 0000000..12b684f --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_bfs/experiment_5.zsh @@ -0,0 +1,156 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") + +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -diffuse_queue_size) + DIFFUSE_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE="$DIFFUSE_QUEUE_SIZE" \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/lj_bfs/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/lj_bfs/job_cca_lj.sh b/Papers/ICPP_2024/Runs/lj_bfs/job_cca_lj.sh new file mode 100644 index 0000000..46899d4 --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_bfs/job_cca_lj.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J bfs-lj-cca +#SBATCH -p general +#SBATCH -o lj-bfs_%j.txt +#SBATCH -e lj-bfs_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=03:50:00 +#SBATCH --mem=140G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +#CHIP_DIM_VALUES=("32" "64" "128") +#CHIP_DIM_VALUES=("16") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=22217728 +VICINITY[16]=4 +MAX_EDGES[16]=300 + +MEMORY_CC[32]=6108864 +VICINITY[32]=5 +MAX_EDGES[32]=100 + +MEMORY_CC[64]=1588608 +VICINITY[64]=6 +MAX_EDGES[64]=70 + +MEMORY_CC[128]=424304 +VICINITY[128]=7 +#VICINITY[128]=128 +MAX_EDGES[128]=85 + +MIN_EDGES=50 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=13900 + +RHIZOME_CUTOFF[2]=6950 + +RHIZOME_CUTOFF[4]=3475 + +RHIZOME_CUTOFF[8]=1738 + +RHIZOME_CUTOFF[16]=869 + +#RHIZOMES=("16" "4") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=4096 +DIFFUSE_QUEUE_SIZE=16384 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=100 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=32768 + DIFFUSE_QUEUE_SIZE=32768 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} \ + -action_queue_size ${ACTION_QUEUE_SIZE} \ + -diffuse_queue_size ${DIFFUSE_QUEUE_SIZE} \ + -script run_bfs_lj.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/lj_bfs/lj_bfs.csv b/Papers/ICPP_2024/Runs/lj_bfs/lj_bfs.csv new file mode 100644 index 0000000..ae78a6c --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_bfs/lj_bfs.csv @@ -0,0 +1,70 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,549106,104216509,10165181,94051328,10165181,7409370,5639,78.0439,2750172,77517374,2755811,8814502965,128,128,50,100,7,ON,16,869,181,424304,1934.7743318091223,0.19617499972462774,0.000549106,326.783,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,287074,104585916,10028063,94557853,10028063,7441676,8566,91.1127,2577821,81479631,2586387,6597673729,128,128,50,100,7,ON,16,869,90,424304,1940.8583771717597,0.2897691647222065,0.000287074,326.783,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,2183294,110314849,11149154,99165695,11149154,7813488,25062,85.1479,3310604,82608848,3335666,2321551111,32,32,50,100,5,ON,16,869,45,6108864,1715.7150231353303,0.19973741362297584,0.002183294,5228.53,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,1242394,113884544,11165934,102718610,11165934,8079570,48485,94.3858,3037879,94240527,3086364,1797456305,32,32,50,100,5,ON,16,869,22,6108864,1716.095275970495,0.2929259391974203,0.001242394,5228.53,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,1115298,107358815,10602276,96756539,10602276,7596698,10589,81.1016,2994989,80991029,3005578,4533052842,64,64,50,100,6,ON,16,869,90,1588608,1790.2659621303628,0.19590297613745258,0.001115298,1307.13,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,585026,105094687,10194019,94900668,10194019,7502475,16972,93.5713,2674572,85737202,2691544,3315668578,64,64,50,100,6,ON,16,869,45,1588608,1791.7869734710223,0.27862982939940767,0.000585026,1307.13,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,543508,105175038,10277180,94897858,10277180,7495737,5763,79.1842,2775680,77733864,2781443,8897057839,128,128,50,100,7,ON,16,869,181,424304,1934.7743318091223,0.1979738515024947,0.000543508,326.783,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,282155,101170456,9646840,91523616,9646840,7218480,8048,89.5953,2420312,78924863,2428360,6382389701,128,128,50,100,7,ON,16,869,90,424304,1940.8583771717597,0.28032960640045795,0.000282155,326.783,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,2289043,116609963,11818863,104791100,11818863,8149366,26772,85.8652,3642725,87802507,3669497,2454538037,32,32,50,100,5,ON,16,869,45,6108864,1715.7150231353303,0.211116848976174,0.002289043,5228.53,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,1219645,112024663,10960293,101064370,10960293,7933450,47029,94.7616,2979814,93054927,3026843,1767777750,32,32,50,100,5,ON,16,869,22,6108864,1716.095275970495,0.2880820669620503,0.001219645,5228.53,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,1114676,108870589,10841043,98029546,10841043,7725129,10890,81.9968,3105024,82093769,3115914,4599205804,64,64,50,100,6,ON,16,869,90,1588608,1790.2659621303628,0.19870539501043485,0.001114676,1307.13,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,591606,107150178,10359251,96790927,10359251,7609681,17400,93.968,2732170,87590437,2749570,3380630539,64,64,50,100,6,ON,16,869,45,1588608,1791.7869734710223,0.28407230961601765,0.000591606,1307.13,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,525200,102300637,9964992,92335645,9964992,7291240,5540,79.8213,2668212,75778678,2673752,8643557338,128,128,50,100,7,ON,16,869,181,424304,1934.7743318091223,0.19232320587135104,0.0005252,326.783,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,279884,100876118,9612440,91263678,9612440,7208551,8037,90.3001,2395852,78684210,2403889,6363813569,128,128,50,100,7,ON,16,869,90,424304,1940.8583771717597,0.27950847240437166,0.000279884,326.783,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,2225193,113144273,11497344,101646929,11497344,7978092,26156,85.7659,3493096,84847638,3519252,2382481350,32,32,50,100,5,ON,16,869,45,6108864,1715.7150231353303,0.20492998916263794,0.002225193,5228.53,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,1231551,112852805,11050292,101802513,11050292,8035605,46847,94.492,2967840,93422648,3014687,1781006382,32,32,50,100,5,ON,16,869,22,6108864,1716.095275970495,0.29024681544076747,0.001231551,5228.53,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,1114002,108248808,10743205,97505603,10743205,7701239,10629,81.7385,3031337,81289503,3041966,4569646554,64,64,50,100,6,ON,16,869,90,1588608,1790.2659621303628,0.19745018657467237,0.001114002,1307.13,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,608297,109658260,10706924,98951336,10706924,7817912,18285,93.7217,2870727,89728235,2889012,3460116274,64,64,50,100,6,ON,16,869,45,1588608,1791.7869734710223,0.2907612224466,0.000608297,1307.13,5354018,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,4268754,120692143,12283634,108408509,12283634,8473685,82252,92.2232,3727697,88184572,3809949,1261789160,16,16,50,100,4,ON,1,13900,22,22217728,1558.755929482463,0.21219534156742165,0.004268754,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,2493704,118053484,11470377,106583107,11470377,8312915,186641,96.4257,2970821,89467254,3157462,932168691,16,16,50,100,4,ON,1,13900,11,22217728,1558.850992691254,0.2837409160742965,0.002493704,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,4242314,119681916,12048982,107632934,12048982,8405823,78564,92.1362,3564595,87198094,3643159,1251160439,16,16,50,100,4,ON,1,13900,22,22217728,1558.755929482463,0.2104352482186494,0.004242314,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,2459321,117004520,11456348,105548172,11456348,8289180,186658,96.8601,2980510,88505949,3167168,923996293,16,16,50,100,4,ON,1,13900,11,22217728,1558.850992691254,0.2812169626020133,0.002459321,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,4284336,120739267,12221206,108518061,12221206,8461897,80761,92.245,3678548,88369748,3759309,1262123927,16,16,50,100,4,ON,1,13900,22,22217728,1558.755929482463,0.2122937701852612,0.004284336,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,2519028,118762572,11582826,107179746,11582826,8346521,190732,96.1617,3045573,90208666,3236305,937747582,16,16,50,100,4,ON,1,13900,11,22217728,1558.850992691254,0.2854697768098579,0.002519028,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,523443,101497513,9853481,91644032,9853481,7242858,5482,79.7759,2605141,75346082,2610623,8584395611,128,128,50,100,7,ON,1,20300,181,424304,1934.7743318091223,0.19101292290351488,0.000523443,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,278568,99685192,9530686,90154506,9530686,7163144,7948,89.3056,2359594,77744608,2367542,6289193353,128,128,50,100,7,ON,1,20300,90,424304,1940.8583771717597,0.27623820382200714,0.000278568,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,2269770,114454773,11541911,102912862,11541911,8054075,25990,84.7846,3461846,86040912,3487836,2409270767,32,32,50,100,5,ON,1,20300,45,6108864,1715.7150231353303,0.20729710819836386,0.00226977,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,1235985,113896820,11073810,102823010,11073810,8042523,47447,95.0053,2983840,94405723,3031287,1797148736,32,32,50,100,5,ON,1,20300,22,6108864,1716.095275970495,0.29285550523327336,0.001235985,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,1093731,106436781,10537131,95899650,10537131,7561999,10416,82.0713,2964716,80187477,2975132,4494822794,64,64,50,100,6,ON,1,20300,90,1588608,1790.2659621303628,0.19421005574086725,0.001093731,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,616622,108890739,10559204,98331535,10559204,7732999,17457,91.9419,2808748,88663440,2826205,3435643092,64,64,50,100,6,ON,1,20300,45,1588608,1791.7869734710223,0.28874675889062956,0.000616622,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,562800,104641904,10222573,94419331,10222573,7420987,5589,76.6015,2795997,77687574,2801586,8850054059,128,128,50,100,7,ON,1,20300,181,424304,1934.7743318091223,0.1970074695681323,0.0005628,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,289428,102798145,9836634,92961511,9836634,7335874,8578,88.812,2492182,80241275,2500760,6485032267,128,128,50,100,7,ON,1,20300,90,424304,1940.8583771717597,0.2848478770498712,0.000289428,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,2277167,114023350,11552836,102470514,11552836,8056724,26211,84.5869,3469901,85294181,3496112,2399865756,32,32,50,100,5,ON,1,20300,45,6108864,1715.7150231353303,0.2065406379103228,0.002277167,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,1253506,114554362,11127439,103426923,11127439,8079651,47883,94.1619,2999905,94871879,3047788,1807822791,32,32,50,100,5,ON,1,20300,22,6108864,1716.095275970495,0.2946276352693775,0.001253506,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,1105307,106828105,10588143,96239962,10588143,7585543,10641,81.4742,2991959,80440940,3002600,4512256492,64,64,50,100,6,ON,1,20300,90,1588608,1790.2659621303628,0.1949879180083308,0.001105307,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,577493,103956034,10078917,93877117,10078917,7438983,16563,93.7037,2623371,85090073,2639934,3279697504,64,64,50,100,6,ON,1,20300,45,1588608,1791.7869734710223,0.2756030291199659,0.000577493,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,536964,103838523,10126021,93712502,10126021,7393358,5577,79.4649,2727086,76733648,2732663,8783942357,128,128,50,100,7,ON,1,20300,181,424304,1934.7743318091223,0.1954580709301551,0.000536964,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,271748,101745700,9728284,92017416,9728284,7270515,8318,93.4876,2449451,79299996,2457769,6418888741,128,128,50,100,7,ON,1,20300,90,424304,1940.8583771717597,0.2818897423484639,0.000271748,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,2230385,113422270,11422003,102000267,11422003,7973664,25513,85.6207,3422826,85010284,3448339,2388037739,32,32,50,100,5,ON,1,20300,45,6108864,1715.7150231353303,0.20540750695140336,0.002230385,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,1245486,113774740,11054316,102720424,11054316,8035214,46665,94.4377,2972437,94470750,3019102,1795385061,32,32,50,100,5,ON,1,20300,22,6108864,1716.095275970495,0.2926026011001218,0.001245486,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,1112429,106983635,10549092,96434543,10549092,7576132,10444,80.8999,2962516,80339788,2972960,4518652520,64,64,50,100,6,ON,1,20300,90,1588608,1790.2659621303628,0.19528271769773756,0.001112429,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,596574,106509520,10282577,96226943,10282577,7586473,17164,92.609,2678940,86787514,2696104,3360376101,64,64,50,100,6,ON,1,20300,45,1588608,1791.7869734710223,0.2823988462072017,0.000596574,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,MESH,OFF,ON,4,580363,104316533,10134720,94181813,10134720,7407245,5603,74.6661,2721872,77520828,2727475,8825373002,128,128,50,100,7,ON,1,20300,181,424304,1934.7743318091223,0.1965262838674679,0.000580363,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,TORUS,OFF,ON,4,281035,102030367,9775454,92254913,9775454,7283877,8507,90.7799,2483070,79762208,2491577,6436623185,128,128,50,100,7,ON,1,20300,90,424304,1940.8583771717597,0.2826992704589151,0.000281035,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,MESH,OFF,ON,4,2282796,115439361,11620092,103819269,11620092,8090528,26181,85.2479,3503383,86454258,3529564,2430120814,32,32,50,100,5,ON,1,20300,45,6108864,1715.7150231353303,0.20906961259845594,0.002282796,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,TORUS,OFF,ON,4,1229723,111682890,10905916,100776974,10905916,7936566,46134,94.062,2923216,92823045,2969350,1762551271,32,32,50,100,5,ON,1,20300,22,6108864,1716.095275970495,0.2872743619337973,0.001229723,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,MESH,OFF,ON,4,1101176,106371053,10563355,95807698,10563355,7575796,10305,81.4689,2977254,80066233,2987559,4489977692,64,64,50,100,6,ON,1,20300,90,1588608,1790.2659621303628,0.19402996594169158,0.001101176,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,TORUS,OFF,ON,4,600337,107922531,10449969,97472562,10449969,7666358,17685,93.4331,2765926,88337160,2783611,3404917787,64,64,50,100,6,ON,1,20300,45,1588608,1791.7869734710223,0.2861282710374591,0.000600337,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,537260,102552176,9923113,92629063,9923113,7300356,5519,78.4832,2617238,75829165,2622757,8670023774,128,128,50,100,7,ON,4,3475,181,424304,1934.7743318091223,0.19294906116386748,0.00053726,326.693,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,280030,101138130,9685394,91452736,9685394,7244255,8311,90.1309,2432828,78922716,2441139,6380035628,128,128,50,100,7,ON,4,3475,90,424304,1940.8583771717597,0.2802191706837271,0.00028003,326.693,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,4270418,119836846,12149409,107687437,12149409,8449190,80413,91.7884,3619806,87077722,3700219,1253097522,16,16,50,100,4,ON,4,3475,22,22217728,1558.755929482463,0.21082450924338614,0.004270418,20908.3,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,2508111,118774999,11536017,107238982,11536017,8359001,187679,96.4703,2989337,89959366,3177016,937900420,16,16,50,100,4,ON,4,3475,11,22217728,1558.850992691254,0.28548283304921324,0.002508111,20908.3,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,2188367,111759833,11263324,100496509,11263324,7911854,25323,85.7654,3326147,83429285,3351470,2352647770,32,32,50,100,5,ON,4,3475,45,6108864,1715.7150231353303,0.20233461269980238,0.002188367,5227.09,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,1269645,114859406,11158197,103701209,11158197,8067262,47658,93.8616,3043277,95896756,3090935,1812595264,32,32,50,100,5,ON,4,3475,22,6108864,1716.095275970495,0.2954468292473998,0.001269645,5227.09,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,MESH,OFF,ON,4,1103838,107016811,10596395,96420416,10596395,7585471,10556,81.5874,3000368,80743447,3010924,4520459478,64,64,50,100,6,ON,4,3475,90,1588608,1790.2659621303628,0.19533065394336596,0.001103838,1306.77,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,596712,107033405,10215066,96818339,10215066,7567929,17012,93.0078,2630125,87165678,2647137,3376997370,64,64,50,100,6,ON,4,3475,45,1588608,1791.7869734710223,0.2837856743479247,0.000596712,1306.77,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,530618,104849550,10146173,94703377,10146173,7426857,5502,80.8308,2713814,77193479,2719316,8872608609,128,128,50,100,7,ON,4,3475,181,424304,1934.7743318091223,0.19738838202351952,0.000530618,326.693,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,4248208,119005870,12010538,106995332,12010538,8345832,78553,91.9418,3586153,86478690,3664706,1244573234,16,16,50,100,4,ON,4,3475,22,22217728,1558.755929482463,0.20941012208870918,0.004248208,20908.3,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,2466052,116814226,11475936,105338290,11475936,8274749,190021,96.4832,3011166,88698497,3201187,922407074,16,16,50,100,4,ON,4,3475,11,22217728,1558.850992691254,0.280765650011764,0.002466052,20908.3,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,2204261,112588852,11352039,101236813,11352039,7941465,25616,85.9379,3384958,84215937,3410574,2370563192,32,32,50,100,5,ON,4,3475,45,6108864,1715.7150231353303,0.20387285552966128,0.002204261,5227.09,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,1240711,112656422,11020738,101635684,11020738,7983885,47814,93.5818,2989039,93268268,3036853,1777903203,32,32,50,100,5,ON,4,3475,22,6108864,1716.095275970495,0.28977752606216506,0.001240711,5227.09,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,MESH,OFF,ON,4,1112659,107235781,10603246,96632535,10603246,7625306,10414,80.9399,2967526,80878538,2977940,4527124084,64,64,50,100,6,ON,4,3475,90,1588608,1790.2659621303628,0.1956429126017842,0.001112659,1306.77,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,582589,105126908,10188868,94938040,10188868,7507182,17083,93.5664,2664603,85870137,2681686,3317150477,64,64,50,100,6,ON,4,3475,45,1588608,1791.7869734710223,0.2787452167895853,0.000582589,1306.77,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,4438700,124700584,12447828,112252756,12447828,8670701,80467,91.8075,3696660,90952647,3777127,1303223667,16,16,50,100,4,ON,4,3475,22,22217728,1558.755929482463,0.21924975708393515,0.0044387,20908.3,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,2487319,117826663,11530292,106296371,11530292,8357665,187344,96.3794,2985283,89136812,3172627,930442685,16,16,50,100,4,ON,4,3475,11,22217728,1558.850992691254,0.2832107015442607,0.002487319,20908.3,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,2225688,113699197,11397307,102301890,11397307,7993062,25262,85.909,3378983,85108268,3404245,2394245236,32,32,50,100,5,ON,4,3475,45,6108864,1715.7150231353303,0.20590728759044974,0.002225688,5227.09,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,1231637,113073185,11087088,101986097,11087088,8034336,48124,94.7832,3004628,93886529,3052752,1784628689,32,32,50,100,5,ON,4,3475,22,6108864,1716.095275970495,0.2908293702540185,0.001231637,5227.09,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,MESH,OFF,ON,4,1115779,109469994,10833819,98636175,10833819,7711039,10895,82.3893,3111885,82860703,3122780,4626286151,64,64,50,100,6,ON,4,3475,90,1588608,1790.2659621303628,0.19985661297882407,0.001115779,1306.77,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,588129,105557891,10181974,95375917,10181974,7509523,16999,93.3351,2655452,86265356,2672451,3330182953,64,64,50,100,6,ON,4,3475,45,1588608,1791.7869734710223,0.27985110426958354,0.000588129,1306.77,5352537,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_liveJournal.zsh b/Papers/ICPP_2024/Runs/lj_bfs/run_bfs_lj.zsh similarity index 60% rename from Papers/ICS_2024/Runs/BFS/run_bfs_liveJournal.zsh rename to Papers/ICPP_2024/Runs/lj_bfs/run_bfs_lj.zsh index a585d69..2e46ca5 100755 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_liveJournal.zsh +++ b/Papers/ICPP_2024/Runs/lj_bfs/run_bfs_lj.zsh @@ -1,22 +1,17 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# to be invoked wih: -vicinity 7 -maxedge 130 - # Define other command-line arguments -GRAPH_TYPE="LiveJournal" +GRAPH_TYPE="LJ" OUTPUT_DIR="." SHAPE="square" -ROOT_NODE="0" #"10009" -MEMORY_CC="825280" +ROOT_NODE="0" +MEMORY_CC="22528" HX="128" HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -42,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -50,5 +49,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/muchiSim/liveJournal.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/BFS_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/lj_pagerank/experiment_5.zsh b/Papers/ICPP_2024/Runs/lj_pagerank/experiment_5.zsh new file mode 100755 index 0000000..9377cde --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_pagerank/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("10" "11" "12" "13") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("1") + +NETWORK="1" # TORUS +#NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Page_Rank_Fixed_Iterations_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=32768 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/lj_pagerank/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/lj_pagerank/job_cca_lj.sh b/Papers/ICPP_2024/Runs/lj_pagerank/job_cca_lj.sh new file mode 100644 index 0000000..e1ac752 --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_pagerank/job_cca_lj.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J pr-lj-cca +#SBATCH -p general +#SBATCH -o lj-pr_%j.txt +#SBATCH -e lj-pr_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=01:25:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +# CHIP_DIM_VALUES=("32" "64" "128" "16") +#CHIP_DIM_VALUES=("16") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=22217728 +VICINITY[16]=4 +MAX_EDGES[16]=300 + +MEMORY_CC[32]=8108864 +VICINITY[32]=5 +MAX_EDGES[32]=300 + +MEMORY_CC[64]=2988608 +VICINITY[64]=6 +MAX_EDGES[64]=150 + +MEMORY_CC[128]=454304 +VICINITY[128]=7 +#VICINITY[128]=128 +MAX_EDGES[128]=100 + +MIN_EDGES=60 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=13900 + +RHIZOME_CUTOFF[2]=6950 + +RHIZOME_CUTOFF[4]=3475 + +RHIZOME_CUTOFF[8]=1738 + +RHIZOME_CUTOFF[16]=869 + + +#RHIZOMES=("16" "1" "4") +RHIZOMES=("16") +ACTION_QUEUE_SIZE=32768 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + + max_edges=100 + vicinity=2 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=32768 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_pagerank_lj.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/lj_pagerank/lj_pagerank.csv b/Papers/ICPP_2024/Runs/lj_pagerank/lj_pagerank.csv new file mode 100644 index 0000000..60b76bc --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_pagerank/lj_pagerank.csv @@ -0,0 +1,19 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,374640,73961856,73961856,0,9616976,9616976,0,79.5195,0,52239372,0,4370305646,128,128,60,100,2,ON,16,869,90,424304,1940.8583771717597,0.1929253783418436,0.00037464,323.011,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,2312897,73961856,73961856,0,9616976,9616976,0,81.5395,0,53936309,0,1093128740,32,32,60,100,2,ON,16,869,22,8108864,2277.1911663814544,0.21259230241845709,0.002312897,5168.18,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,926422,73961856,73961856,0,9616976,9616976,0,79.3125,0,53818222,0,2185455692,64,64,60,100,2,ON,16,869,45,2588608,2913.9787542929394,0.23787855319576875,0.000926422,1292.04,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,378680,73961856,73961856,0,9616976,9616976,0,78.2338,0,52014791,0,4370392269,128,128,60,100,2,ON,16,869,90,424304,1940.8583771717597,0.19294364960915864,0.00037868,323.011,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,2301522,73961856,73961856,0,9616976,9616976,0,81.7343,0,54098468,0,1093294235,32,32,60,100,2,ON,16,869,22,8108864,2277.1911663814544,0.21257419151080198,0.002301522,5168.18,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,908500,73961856,73961856,0,9616976,9616976,0,79.9336,0,53754949,0,2185518586,64,64,60,100,2,ON,16,869,45,2588608,2913.9787542929394,0.2377872320150565,0.0009085,1292.04,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,2305106,73961856,73961856,0,9616976,9616976,0,81.6958,0,54152183,0,1093131344,32,32,60,100,2,ON,16,869,22,8108864,2277.1911663814544,0.2125594190271565,0.002305106,5168.18,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,918526,73961856,73961856,0,9616976,9616976,0,80.0214,0,54267877,0,2185568291,64,64,60,100,2,ON,16,869,45,2588608,2913.9787542929394,0.23784734096943413,0.000918526,1292.04,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,TORUS,OFF,ON,4,371273,73961856,73961856,0,9616976,9616976,0,79.3259,0,51686104,0,4370655654,128,128,60,100,2,ON,16,869,90,424304,1940.8583771717597,0.1929286056023983,0.000371273,323.011,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,TORUS,OFF,ON,4,2311391,73961856,73961856,0,9616976,9616976,0,81.7023,0,53928862,0,1093159261,32,32,60,100,2,ON,16,869,22,8108864,2277.1911663814544,0.21259149676454542,0.002311391,5168.18,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,TORUS,OFF,ON,4,915612,73961856,73961856,0,9616976,9616976,0,79.8297,0,54031042,0,2185526185,64,64,60,100,2,ON,16,869,45,2588608,2913.9787542929394,0.23782693110915834,0.000915612,1292.04,5292216,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,388766,73957135,73957135,0,9614129,9614129,0,76.5512,0,50835663,0,4370276415,128,128,60,100,2,ON,1,13900,90,424304,1940.8583771717597,0.19297471232681046,0.000388766,322.917,5290667,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,5717155,73957135,73957135,0,9614129,9614129,0,86.1917,0,52844068,0,546942981,16,16,60,100,2,ON,1,13900,11,22217728,1558.850992691254,0.1792818177964323,0.005717155,20666.7,5290667,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,2307898,73957135,73957135,0,9614129,9614129,0,81.4204,0,54070120,0,1093070592,32,32,60,100,2,ON,1,13900,22,8108864,2277.1911663814544,0.21256010659294874,0.002307898,5166.67,5290667,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,913792,73957135,73957135,0,9614129,9614129,0,79.9418,0,53327480,0,2185394068,64,64,60,100,2,ON,1,13900,45,2588608,2913.9787542929394,0.23780290252010516,0.000913792,1291.67,5290667,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,5720202,73957135,73957135,0,9614129,9614129,0,86.0603,0,52826789,0,546931821,16,16,60,100,2,ON,1,13900,11,22217728,1558.850992691254,0.1792874513036209,0.005720202,20666.7,5290667,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,910106,73957135,73957135,0,9614129,9614129,0,79.6472,0,53689589,0,2185634263,64,64,60,100,2,ON,1,13900,45,2588608,2913.9787542929394,0.23780827275017521,0.000910106,1291.67,5290667,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,5716661,73957135,73957135,0,9614129,9614129,0,86.1778,0,52799253,0,546872912,16,16,60,100,2,ON,1,13900,11,22217728,1558.850992691254,0.1792596200470406,0.005716661,20666.7,5290667,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/lj_pagerank/run_pagerank_lj.zsh b/Papers/ICPP_2024/Runs/lj_pagerank/run_pagerank_lj.zsh new file mode 100755 index 0000000..3b2e9ff --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_pagerank/run_pagerank_lj.zsh @@ -0,0 +1,62 @@ +#!/bin/zsh + +# Define other command-line arguments +GRAPH_TYPE="LJ" +OUTPUT_DIR="." +SHAPE="square" +ROOT_NODE="0" +MEMORY_CC="22528" +HX="128" +HY="128" +HDEPTH="0" +HB="0" +ROUTE="0" +NETWORK="0" # 0: Mesh, 1: Torus +VERIFY="" # "-verify" + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -hx) + HX="$2" + shift 2 + ;; + -hy) + HY="$2" + shift 2 + ;; + -m) + MEMORY_CC="$2" + shift 2 + ;; + -dataset) + DATASET_PATH="$2" + shift 2 + ;; + -network) + NETWORK="$2" + shift 2 + ;; + -trail) + TRAIL="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +INPUT_FILE="$DATASET_PATH/muchiSim/liveJournal.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/PageRank_Fixed_Iterations_Rhizome_CCASimulator" + +# Run the command +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -iter 1 -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/lj_sssp/experiment_5.zsh b/Papers/ICPP_2024/Runs/lj_sssp/experiment_5.zsh new file mode 100755 index 0000000..b3855bb --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_sssp/experiment_5.zsh @@ -0,0 +1,156 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("1") + +NETWORK="1" # TORUS +#NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -diffuse_queue_size) + DIFFUSE_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Single_Source_Shortest_Path_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE="$DIFFUSE_QUEUE_SIZE" \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "true" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/lj_sssp/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/lj_sssp/job_cca_lj.sh b/Papers/ICPP_2024/Runs/lj_sssp/job_cca_lj.sh new file mode 100644 index 0000000..615cfe9 --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_sssp/job_cca_lj.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J sssp-lj-cca +#SBATCH -p general +#SBATCH -o lj-sssp_%j.txt +#SBATCH -e lj-sssp_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=02:30:00 +#SBATCH --mem=140G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +#CHIP_DIM_VALUES=("32" "64" "128") +#CHIP_DIM_VALUES=("16") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=29217728 +VICINITY[16]=4 +MAX_EDGES[16]=300 + +MEMORY_CC[32]=7308864 +VICINITY[32]=5 +MAX_EDGES[32]=100 + +MEMORY_CC[64]=1888608 +VICINITY[64]=6 +MAX_EDGES[64]=70 + +MEMORY_CC[128]=664304 +VICINITY[128]=7 +#VICINITY[128]=128 +MAX_EDGES[128]=85 + +MIN_EDGES=50 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=13900 + +RHIZOME_CUTOFF[2]=6950 + +RHIZOME_CUTOFF[4]=3475 + +RHIZOME_CUTOFF[8]=1738 + +RHIZOME_CUTOFF[16]=869 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=4096 +DIFFUSE_QUEUE_SIZE=16384 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=100 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=32768 + DIFFUSE_QUEUE_SIZE=32768 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} \ + -action_queue_size ${ACTION_QUEUE_SIZE} \ + -diffuse_queue_size ${DIFFUSE_QUEUE_SIZE} \ + -script run_sssp_lj.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/lj_sssp/lj_sssp.csv b/Papers/ICPP_2024/Runs/lj_sssp/lj_sssp.csv new file mode 100644 index 0000000..648b447 --- /dev/null +++ b/Papers/ICPP_2024/Runs/lj_sssp/lj_sssp.csv @@ -0,0 +1,14 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,10948553,536928544,53429242,483499302,53429242,34166173,1086461,98.5783,18176608,435149624,19263069,4238891137,16,16,50,100,4,ON,1,13900,11,29217728,2049.809896800843,1.483399399688966,0.010948553,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,10119515,496682924,50219295,446463629,50219295,31698728,1054169,98.387,17466398,398594907,18520567,3920918190,16,16,50,100,4,ON,1,13900,11,29217728,2049.809896800843,1.372098634395995,0.010119515,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,10786063,529870338,52444195,477426143,52444195,33654966,1058469,98.4875,17730760,425568716,18789229,4182328684,16,16,50,100,4,ON,1,13900,11,29217728,2049.809896800843,1.4635411947553936,0.010786063,20908.1,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,1183448,528311894,52546308,475765586,52546308,32797169,61357,97.0411,19687782,434077153,19749139,33319968156,128,128,50,100,7,ON,1,20300,90,664304,3018.1624867608007,1.8246397958239995,0.001183448,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,6022736,583834303,56283978,527550325,56283978,36707849,285386,97.8813,19290743,513118519,19576129,9210241339,32,32,50,100,5,ON,1,20300,22,7308864,2052.752810217071,1.6422013141037368,0.006022736,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +0,TORUS,OFF,ON,4,2905478,595485464,57116880,538368584,57116880,37172991,121740,97.5307,19822149,514585953,19943889,18778728774,64,64,50,100,6,ON,1,20300,45,1888608,2128.4445077175974,1.7192214770210512,0.002905478,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,1290715,570797838,55019003,515778835,55019003,35503235,61076,96.2892,19454692,460574105,19515768,35991628817,128,128,50,100,7,ON,1,20300,90,664304,3018.1624867608007,1.9710049028211443,0.001290715,326.689,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,5970477,577229967,56524424,520705543,56524424,36221998,295199,97.5711,20007227,509393241,20302426,9104382506,32,32,50,100,5,ON,1,20300,22,7308864,2052.752810217071,1.6233963429344207,0.005970477,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +1,TORUS,OFF,ON,4,2513080,510372334,50964977,459407357,50964977,31891159,117059,97.1503,18956759,440118940,19073818,16094552588,64,64,50,100,6,ON,1,20300,45,1888608,2128.4445077175974,1.4735815827181433,0.00251308,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,5816686,566795417,55358928,511436489,55358928,35865667,285503,97.9331,19207758,495734450,19493261,8941624549,32,32,50,100,5,ON,1,20300,22,7308864,2052.752810217071,1.594192397295014,0.005816686,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +2,TORUS,OFF,ON,4,2602680,526610204,51783337,474826867,51783337,32960508,114250,96.8406,18708579,454275333,18822829,16610806372,64,64,50,100,6,ON,1,20300,45,1888608,2128.4445077175974,1.5208803930799972,0.00260268,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,TORUS,OFF,ON,4,5862556,571842951,55613138,516229813,55613138,36038026,286134,98.0733,19288978,499503319,19575112,9021297592,32,32,50,100,5,ON,1,20300,22,7308864,2052.752810217071,1.6083731174849643,0.005862556,5227.02,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY +3,TORUS,OFF,ON,4,2584433,525740340,52098529,473641811,52098529,32946402,117456,97.2816,19034671,453123124,19152127,16582838840,64,64,50,100,6,ON,1,20300,45,1888608,2128.4445077175974,1.518266261367168,0.002584433,1306.76,5352469,4847571,68993773,PATH-TO/Datasets/muchiSim/liveJournal.edgelist,XY diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_liveJournal.zsh b/Papers/ICPP_2024/Runs/lj_sssp/run_sssp_lj.zsh similarity index 58% rename from Papers/ICS_2024/Runs/SSSP/run_sssp_liveJournal.zsh rename to Papers/ICPP_2024/Runs/lj_sssp/run_sssp_lj.zsh index a80b741..d2a64bc 100755 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_liveJournal.zsh +++ b/Papers/ICPP_2024/Runs/lj_sssp/run_sssp_lj.zsh @@ -1,21 +1,17 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/SSSP_CCASimulator" - - # Define other command-line arguments -GRAPH_TYPE="LiveJournal" +GRAPH_TYPE="LJ" OUTPUT_DIR="." SHAPE="square" -ROOT_NODE="0" #"10009" -MEMORY_CC="8388608" -HX="64" -HY="64" +ROOT_NODE="0" +MEMORY_CC="22528" +HX="128" +HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -41,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -49,5 +49,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/muchiSim/liveJournal.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/SSSP_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/ln_bfs/experiment_5.zsh b/Papers/ICPP_2024/Runs/ln_bfs/experiment_5.zsh new file mode 100755 index 0000000..7865e52 --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_bfs/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") + +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/ln_bfs/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/ln_bfs/job_cca_ln.sh b/Papers/ICPP_2024/Runs/ln_bfs/job_cca_ln.sh new file mode 100644 index 0000000..efee2cc --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_bfs/job_cca_ln.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J bfs-ln-cca +#SBATCH -p general +#SBATCH -o ln-bfs_%j.txt +#SBATCH -e ln-bfs_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:45:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=1148000 +VICINITY[16]=4 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=512000 +VICINITY[32]=6 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=328000 +VICINITY[64]=10 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=52000 +VICINITY[128]=12 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=4096 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + + max_edges=45 + vicinity=2 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=16384 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_bfs_ln.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/ln_bfs/ln_bfs.csv b/Papers/ICPP_2024/Runs/ln_bfs/ln_bfs.csv new file mode 100644 index 0000000..94126ed --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_bfs/ln_bfs.csv @@ -0,0 +1,33 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,5950,1485306,511871,973435,511871,501740,1019,59.8722,9112,274482,10131,83592139,128,128,20,45,12,ON,1,431800,181,52000,263.58837674062926,0.0006878320664795189,5.95e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,3381,1403753,479659,924094,479659,473697,1343,58.0769,4619,209174,5962,59567836,128,128,20,45,12,ON,1,431800,90,52000,269.6724221032666,0.0009783069890766632,3.381e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,MESH,OFF,ON,4,34605,1440418,507558,932860,507558,485516,7781,92.052,14261,317204,22042,10152224,16,16,20,45,4,ON,1,431800,22,1148000,80.9887053728737,0.0003771914032850197,3.4605e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,22019,1283707,442811,840896,442811,431787,10353,95.1177,671,55339,11024,6829366,16,16,20,45,4,ON,1,431800,11,1148000,81.08376858166491,0.00047029994227140324,2.2019e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,MESH,OFF,ON,4,22127,1506285,534452,971833,534452,511435,2738,73.6989,20279,437225,23017,21224046,32,32,20,45,6,ON,1,431800,45,512000,145.52632834080987,0.0005248580284626144,2.2127e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,11537,1434957,504657,930300,504657,484607,5301,86.1618,14749,370246,20050,15221810,32,32,20,45,6,ON,1,431800,22,512000,145.9065811759747,0.0007220667545623575,1.1537e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,MESH,OFF,ON,4,10139,1446389,507148,939241,507148,489773,1292,72.7874,16083,437580,17375,40776140,64,64,20,45,10,ON,1,431800,90,328000,375.6220256920066,0.0008038136111185538,1.0139e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,6484,1449286,506283,943003,506283,491496,1785,78.4935,13002,380821,14787,30679466,64,64,20,45,10,ON,1,431800,45,328000,377.143037032666,0.0011839865232149372,6.484e-06,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,MESH,OFF,ON,4,5798,1433827,492872,940955,492872,482318,865,60.8313,9689,285248,10554,80797499,128,128,20,45,12,ON,1,431800,181,52000,263.58837674062926,0.0006648432969721343,5.798e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,3359,1411686,481418,930268,481418,475282,1480,57.4237,4656,207509,6136,59947780,128,128,20,45,12,ON,1,431800,90,52000,269.6724221032666,0.0009845189328588223,3.359e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,MESH,OFF,ON,4,36618,1498559,531350,967209,531350,508528,8216,90.6224,14606,322452,22822,10532091,16,16,20,45,4,ON,1,431800,22,1148000,80.9887053728737,0.0003914478764214617,3.6618e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,22527,1321286,456679,864607,456679,443890,11948,95.8025,841,62675,12789,7034101,16,16,20,45,4,ON,1,431800,11,1148000,81.08376858166491,0.00048437591460086927,2.2527e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,MESH,OFF,ON,4,21869,1527229,544678,982551,544678,518417,2909,76.5711,23352,445511,26261,21502697,32,32,20,45,6,ON,1,431800,45,512000,145.52632834080987,0.0005316186067414357,2.1869e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,12788,1431305,505046,926259,505046,485311,5052,84.9701,14683,324676,19735,15147112,32,32,20,45,6,ON,1,431800,22,512000,145.9065811759747,0.0007188998320746566,1.2788e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,MESH,OFF,ON,4,11894,1549813,546168,1003645,546168,526283,1258,69.3774,18627,418686,19885,43424318,64,64,20,45,10,ON,1,431800,90,328000,375.6220256920066,0.0008568317716734784,1.1894e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,6350,1385029,481564,903465,481564,467049,1760,77.9542,12755,382400,14515,29413830,64,64,20,45,10,ON,1,431800,45,328000,377.143037032666,0.0011352049654956176,6.35e-06,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,MESH,OFF,ON,4,5993,1453474,498833,954641,498833,487795,1023,58.6349,10015,291761,11038,82408634,128,128,20,45,12,ON,1,431800,181,52000,263.58837674062926,0.0006780918530799026,5.993e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,3820,1355313,457695,897618,457695,452708,1043,52.8697,3944,212081,4987,57812856,128,128,20,45,12,ON,1,431800,90,52000,269.6724221032666,0.0009496646429695022,3.82e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,MESH,OFF,ON,4,34264,1423855,501271,922584,501271,481570,6960,91.5305,12741,313941,19701,10005965,16,16,20,45,4,ON,1,431800,22,1148000,80.9887053728737,0.0003717980589664134,3.4264e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,21632,1286828,444294,842534,444294,432308,11275,96.7766,711,53482,11986,6849862,16,16,20,45,4,ON,1,431800,11,1148000,81.08376858166491,0.0004716412925346023,2.1632e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,MESH,OFF,ON,4,21807,1477362,523804,953558,523804,501796,2555,74.6948,19453,413368,22008,20754938,32,32,20,45,6,ON,1,431800,45,512000,145.52632834080987,0.000513320966425973,2.1807e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,12809,1465640,519181,946459,519181,497463,5769,83.8102,15949,336638,21718,15507635,32,32,20,45,6,ON,1,431800,22,512000,145.9065811759747,0.0007359444731630595,1.2809e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,MESH,OFF,ON,4,11969,1487177,522624,964553,522624,503008,1227,68.3422,18389,402057,19616,41855730,64,64,20,45,10,ON,1,431800,90,328000,375.6220256920066,0.0008261939760482018,1.1969e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,6786,1395076,485452,909624,485452,470607,1638,74.9044,13207,369840,14845,29599830,64,64,20,45,10,ON,1,431800,45,328000,377.143037032666,0.0011426653592999665,6.786e-06,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,MESH,OFF,ON,4,6514,1432457,492037,940420,492037,481450,903,54.4472,9684,279553,10587,80837717,128,128,20,45,12,ON,1,431800,181,52000,263.58837674062926,0.000665476604532039,6.514e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,3280,1389867,474080,915787,474080,467640,1378,59.247,5062,224036,6440,59100774,128,128,20,45,12,ON,1,431800,90,52000,269.6724221032666,0.0009705868667936417,3.28e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,MESH,OFF,ON,4,38231,1533317,543971,989346,543971,521634,8169,87.3445,14168,324050,22337,10740499,16,16,20,45,4,ON,1,431800,22,1148000,80.9887053728737,0.0003993528767107895,3.8231e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,22201,1299022,448838,850184,448838,436676,11403,95.3439,759,55588,12162,6911108,16,16,20,45,4,ON,1,431800,11,1148000,81.08376858166491,0.00047591986232346713,2.2201e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,MESH,OFF,ON,4,20656,1542182,549423,992759,549423,524113,2926,80.0528,22384,454289,25310,21707259,32,32,20,45,6,ON,1,431800,45,512000,145.52632834080987,0.0005362910509219892,2.0656e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,11599,1418394,498061,920333,498061,479822,4857,86.6761,13382,354465,18239,15056847,32,32,20,45,6,ON,1,431800,22,512000,145.9065811759747,0.0007142840152618138,1.1599e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,MESH,OFF,ON,4,10569,1412668,493906,918762,493906,478436,1118,70.0243,14352,409669,15470,39803268,64,64,20,45,10,ON,1,431800,90,328000,375.6220256920066,0.0007850981799612184,1.0569e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,6067,1373038,477448,895590,477448,463073,1703,79.3794,12672,387291,14375,29141901,64,64,20,45,10,ON,1,431800,45,328000,377.143037032666,0.0011245585450048042,6.067e-06,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_language.zsh b/Papers/ICPP_2024/Runs/ln_bfs/run_bfs_ln.zsh similarity index 59% rename from Papers/ICS_2024/Runs/SSSP/run_sssp_language.zsh rename to Papers/ICPP_2024/Runs/ln_bfs/run_bfs_ln.zsh index 2630eff..adfff72 100755 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_language.zsh +++ b/Papers/ICPP_2024/Runs/ln_bfs/run_bfs_ln.zsh @@ -1,21 +1,18 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/SSSP_CCASimulator" - # Define other command-line arguments -GRAPH_TYPE="Language" +GRAPH_TYPE="LN" OUTPUT_DIR="." SHAPE="square" ROOT_NODE="3" -MEMORY_CC="102400" +MEMORY_CC="22528" HX="128" HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" +NETWORK="0" # 0: Mesh, 1: Torus +VERIFY="" # "-verify" # Parse command line arguments while [[ $# -gt 0 ]]; do @@ -40,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -48,5 +49,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/Real/language.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/BFS_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/ln_pagerank/experiment_5.zsh b/Papers/ICPP_2024/Runs/ln_pagerank/experiment_5.zsh new file mode 100755 index 0000000..bdad5b5 --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_pagerank/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("1") + +NETWORK="1" # TORUS +#NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Page_Rank_Fixed_Iterations_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/ln_pagerank/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/ln_pagerank/job_cca_ln.sh b/Papers/ICPP_2024/Runs/ln_pagerank/job_cca_ln.sh new file mode 100644 index 0000000..ce7d08e --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_pagerank/job_cca_ln.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J pr-ln-cca +#SBATCH -p general +#SBATCH -o ln-pr_%j.txt +#SBATCH -e ln-pr_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:55:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=1148000 +VICINITY[16]=2 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=512000 +VICINITY[32]=2 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=328000 +VICINITY[64]=3 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=52000 +VICINITY[128]=3 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=32768 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + #vicinity=${VICINITY[$CHIP_DIM]} + #max_edges=${MAX_EDGES[$CHIP_DIM]} + + max_edges=45 + vicinity=2 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=16384 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_pagerank_ln.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/ln_pagerank/ln_pagerank.csv b/Papers/ICPP_2024/Runs/ln_pagerank/ln_pagerank.csv new file mode 100644 index 0000000..d44ed22 --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_pagerank/ln_pagerank.csv @@ -0,0 +1,17 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,10902,1613769,1613769,0,802086,802086,0,50.5706,0,172945,0,51963787,128,128,20,45,2,ON,1,431800,90,52000,269.6724221032666,0.0008634964069907517,1.0902e-05,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,164878,1613769,1613769,0,802086,802086,0,92.6357,0,201410,0,6511104,16,16,20,45,2,ON,1,431800,11,1148000,81.08376858166491,0.00047675630643077913,0.000164878,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,60510,1613769,1613769,0,802086,802086,0,83.901,0,381150,0,13001571,32,32,20,45,2,ON,1,431800,22,512000,145.9065811759747,0.0006369628294563548,6.051e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,27182,1613769,1613769,0,802086,802086,0,64.4944,0,368593,0,26005683,64,64,20,45,2,ON,1,431800,45,328000,377.143037032666,0.001025160402253237,2.7182e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,11116,1613769,1613769,0,802086,802086,0,49.7872,0,178520,0,51973897,128,128,20,45,2,ON,1,431800,90,52000,269.6724221032666,0.0008637551649784411,1.1116e-05,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,164341,1613769,1613769,0,802086,802086,0,93.6035,0,210284,0,6507219,16,16,20,45,2,ON,1,431800,11,1148000,81.08376858166491,0.00047641253926855327,0.000164341,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,61027,1613769,1613769,0,802086,802086,0,82.028,0,374805,0,13004710,32,32,20,45,2,ON,1,431800,22,512000,145.9065811759747,0.0006372495528680051,6.1027e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,26421,1613769,1613769,0,802086,802086,0,67.0153,0,395942,0,25997998,64,64,20,45,2,ON,1,431800,45,328000,377.143037032666,0.001024339281202215,2.6421e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,11296,1613769,1613769,0,802086,802086,0,48.9933,0,185528,0,51961595,128,128,20,45,2,ON,1,431800,90,52000,269.6724221032666,0.0008636338154333022,1.1296e-05,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,164625,1613769,1613769,0,802086,802086,0,93.9074,0,213356,0,6506015,16,16,20,45,2,ON,1,431800,11,1148000,81.08376858166491,0.00047637427366800753,0.000164625,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,59038,1613769,1613769,0,802086,802086,0,85.7334,0,381704,0,12997944,32,32,20,45,2,ON,1,431800,22,512000,145.9065811759747,0.0006363950323159739,5.9038e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,25626,1613769,1613769,0,802086,802086,0,68.094,0,377621,0,25981296,64,64,20,45,2,ON,1,431800,45,328000,377.143037032666,0.0010231498504295574,2.5626e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,10620,1613769,1613769,0,802086,802086,0,51.9295,0,174540,0,51981979,128,128,20,45,2,ON,1,431800,90,52000,269.6724221032666,0.000863668905928125,1.062e-05,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,163765,1613769,1613769,0,802086,802086,0,93.6922,0,208253,0,6504455,16,16,20,45,2,ON,1,431800,11,1148000,81.08376858166491,0.00047613856741999985,0.000163765,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,64054,1613769,1613769,0,802086,802086,0,79.5828,0,376304,0,13005389,32,32,20,45,2,ON,1,431800,22,512000,145.9065811759747,0.000638099835499579,6.4054e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,25063,1613769,1613769,0,802086,802086,0,68.2118,0,403526,0,25990011,64,64,20,45,2,ON,1,431800,45,328000,377.143037032666,0.0010230929523458434,2.5063e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/ln_pagerank/run_pagerank_ln.zsh b/Papers/ICPP_2024/Runs/ln_pagerank/run_pagerank_ln.zsh new file mode 100755 index 0000000..db25ed2 --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_pagerank/run_pagerank_ln.zsh @@ -0,0 +1,62 @@ +#!/bin/zsh + +# Define other command-line arguments +GRAPH_TYPE="LN" +OUTPUT_DIR="." +SHAPE="square" +ROOT_NODE="3" +MEMORY_CC="22528" +HX="128" +HY="128" +HDEPTH="0" +HB="0" +ROUTE="0" +NETWORK="0" # 0: Mesh, 1: Torus +VERIFY="" # "-verify" + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -hx) + HX="$2" + shift 2 + ;; + -hy) + HY="$2" + shift 2 + ;; + -m) + MEMORY_CC="$2" + shift 2 + ;; + -dataset) + DATASET_PATH="$2" + shift 2 + ;; + -network) + NETWORK="$2" + shift 2 + ;; + -trail) + TRAIL="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +INPUT_FILE="$DATASET_PATH/Real/language.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/PageRank_Fixed_Iterations_Rhizome_CCASimulator" + +# Run the command +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -iter 1 -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/ln_sssp/experiment_5.zsh b/Papers/ICPP_2024/Runs/ln_sssp/experiment_5.zsh new file mode 100755 index 0000000..2c7cb6c --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_sssp/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") + +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Single_Source_Shortest_Path_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "true" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/ln_sssp/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/ln_sssp/job_cca_ln.sh b/Papers/ICPP_2024/Runs/ln_sssp/job_cca_ln.sh new file mode 100644 index 0000000..744cb9c --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_sssp/job_cca_ln.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J sssp-ln-cca +#SBATCH -p general +#SBATCH -o ln-sssp_%j.txt +#SBATCH -e ln-sssp_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:55:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=1148000 +VICINITY[16]=4 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=512000 +VICINITY[32]=6 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=328000 +VICINITY[64]=10 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=52000 +VICINITY[128]=12 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=4096 + +ALLOCATOR_CONFIG=("VICINITY" "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=45 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=16384 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_sssp_ln.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/ln_sssp/ln_sssp.csv b/Papers/ICPP_2024/Runs/ln_sssp/ln_sssp.csv new file mode 100644 index 0000000..50562a2 --- /dev/null +++ b/Papers/ICPP_2024/Runs/ln_sssp/ln_sssp.csv @@ -0,0 +1,33 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,8462,1891953,663002,1228951,663002,622160,2323,59.8666,38519,437204,40842,108075907,128,128,20,45,12,ON,1,431800,181,52000,263.58837674062926,0.0008895562181049835,8.462e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,4720,1909682,663897,1245785,663897,635075,4228,62.323,24594,405983,28822,81675518,128,128,20,45,12,ON,1,431800,90,52000,269.6724221032666,0.0013414122195615236,4.72e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,MESH,OFF,ON,4,43167,1767520,643198,1124322,643198,594892,15054,90.5578,33252,403026,48306,12475495,16,16,20,45,4,ON,1,431800,22,1148000,80.9887053728737,0.0004636882004577777,4.3167e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,26551,1590072,566631,1023441,566631,535326,28576,97.4647,2729,67572,31305,8460176,16,16,20,45,4,ON,1,431800,11,1148000,81.08376858166491,0.0005825765251001191,2.6551e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,MESH,OFF,ON,4,26167,1860842,685316,1175526,685316,625345,5264,78.8098,54707,572333,59971,26267138,32,32,20,45,6,ON,1,431800,45,512000,145.52632834080987,0.0006493405679729445,2.6167e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,14458,1866251,671235,1195016,671235,623590,10541,90.7217,37104,464121,47645,19909155,32,32,20,45,6,ON,1,431800,22,512000,145.9065811759747,0.0009442666604159529,1.4458e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,MESH,OFF,ON,4,14227,1804698,653598,1151100,653598,602260,2430,69.6151,48908,516057,51338,51099669,64,64,20,45,10,ON,1,431800,90,328000,375.6220256920066,0.0010084331075994135,1.4227e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +0,TORUS,OFF,ON,4,7703,1747504,627953,1119551,627953,581590,4740,80.767,41623,537534,46363,37338917,64,64,20,45,10,ON,1,431800,45,328000,377.143037032666,0.0014408646786100091,7.703e-06,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,MESH,OFF,ON,4,8521,1846662,646571,1200091,646571,610715,2128,56.3422,33728,431556,35856,105527235,128,128,20,45,12,ON,1,431800,181,52000,263.58837674062926,0.0008686865123307648,8.521e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,5087,1809122,625673,1183449,625673,596255,3542,59.4138,25876,392060,29418,77705745,128,128,20,45,12,ON,1,431800,90,52000,269.6724221032666,0.0012764264098822967,5.087e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,MESH,OFF,ON,4,41271,1726199,627050,1099149,627050,578117,14358,92.8473,34575,399158,48933,12212131,16,16,20,45,4,ON,1,431800,22,1148000,80.9887053728737,0.00045372691144763985,4.1271e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,25849,1532443,544523,987920,544523,514746,27120,96.3904,2657,63773,29777,8160881,16,16,20,45,4,ON,1,431800,11,1148000,81.08376858166491,0.0005619893287976676,2.5849e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,MESH,OFF,ON,4,24574,1810190,658034,1152156,658034,604748,4847,81.45,48439,552893,53286,25696230,32,32,20,45,6,ON,1,431800,45,512000,145.52632834080987,0.0006348643073750873,2.4574e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,15178,1759089,637758,1121331,637758,588684,9877,87.4638,39197,441565,49074,18760462,32,32,20,45,6,ON,1,431800,22,512000,145.9065811759747,0.0008902312556665793,1.5178e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,MESH,OFF,ON,4,14068,1777774,642697,1135077,642697,592341,2654,67.9933,47702,549899,50356,50486653,64,64,20,45,10,ON,1,431800,90,328000,375.6220256920066,0.0009963143031981756,1.4068e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +1,TORUS,OFF,ON,4,7694,1821004,657916,1163088,657916,610562,4757,79.4471,42597,494970,47354,38726069,64,64,20,45,10,ON,1,431800,45,328000,377.143037032666,0.0014942438462673911,7.694e-06,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,MESH,OFF,ON,4,8267,1846696,647032,1199664,647032,610839,2117,58.6787,34076,427528,36193,105408645,128,128,20,45,12,ON,1,431800,181,52000,263.58837674062926,0.0008676144271490498,8.267e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,4517,1871685,645776,1225909,645776,618807,4115,62.2165,22854,398242,26969,80217866,128,128,20,45,12,ON,1,431800,90,52000,269.6724221032666,0.0013173800748130856,4.517e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,MESH,OFF,ON,4,42883,1777004,646662,1130342,646662,595510,15541,91.721,35611,415238,51152,12589938,16,16,20,45,4,ON,1,431800,22,1148000,80.9887053728737,0.0004678081142328165,4.2883e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,27298,1632487,580251,1052236,580251,547954,29624,97.4048,2673,67850,32297,8696771,16,16,20,45,4,ON,1,431800,11,1148000,81.08376858166491,0.000598853278368271,2.7298e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,MESH,OFF,ON,4,25884,1983916,725738,1258178,725738,666557,5345,82.6349,53836,584933,59181,28036938,32,32,20,45,6,ON,1,431800,45,512000,145.52632834080987,0.0006925049983167923,2.5884e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,15162,1835538,671823,1163715,671823,617885,11116,88.5352,42822,420788,53938,19496806,32,32,20,45,6,ON,1,431800,22,512000,145.9065811759747,0.0009250698896936324,1.5162e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,MESH,OFF,ON,4,13434,1822945,661885,1161060,661885,607836,2908,71.5996,51141,556401,54049,51872327,64,64,20,45,10,ON,1,431800,90,328000,375.6220256920066,0.0010229492049868612,1.3434e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +2,TORUS,OFF,ON,4,8482,1780290,641289,1139001,641289,591070,4809,77.1559,45410,539395,50219,38045574,64,64,20,45,10,ON,1,431800,45,328000,377.143037032666,0.0014685782824175513,8.482e-06,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,MESH,OFF,ON,4,7477,1790661,622508,1168153,622508,591641,1987,60.1767,28880,410923,30867,101966349,128,128,20,45,12,ON,1,431800,181,52000,263.58837674062926,0.0008390494352990923,7.477e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,5140,1837901,639735,1198166,639735,612343,3643,58.9244,23749,418388,27392,78421997,128,128,20,45,12,ON,1,431800,90,52000,269.6724221032666,0.0012882674682935184,5.14e-06,24.9404,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,MESH,OFF,ON,4,42144,1753534,635603,1117931,635603,586768,14429,92.19,34406,409492,48835,12398490,16,16,20,45,4,ON,1,431800,22,1148000,80.9887053728737,0.00046068596311256004,4.2144e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,26724,1578829,561875,1016954,561875,529805,29336,96.1901,2734,67083,32070,8415216,16,16,20,45,4,ON,1,431800,11,1148000,81.08376858166491,0.0005795120861152468,2.6724e-05,1596.19,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,MESH,OFF,ON,4,25405,1794564,655886,1138678,655886,601903,4936,78.1339,49047,526970,53983,25437995,32,32,20,45,6,ON,1,431800,45,512000,145.52632834080987,0.0006288035001245993,2.5405e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,14757,1778638,645340,1133298,645340,595799,10290,90.0599,39251,454546,49541,18965463,32,32,20,45,6,ON,1,431800,22,512000,145.9065811759747,0.0008998041284330975,1.4757e-05,399.047,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,MESH,OFF,ON,4,13729,1777526,644375,1133151,644375,594602,2457,70.8616,47316,518682,49773,50324023,64,64,20,45,10,ON,1,431800,90,328000,375.6220256920066,0.0009929344153114818,1.3729e-05,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY +3,TORUS,OFF,ON,4,8025,1776445,636478,1139967,636478,589100,4351,79.5276,43027,493348,47378,38003537,64,64,20,45,10,ON,1,431800,45,328000,377.143037032666,0.001466621318439787,8.025e-06,99.7617,408624,399130,1216334,PATH-TO/Datasets/Real/language.edgelist,XY diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_language.zsh b/Papers/ICPP_2024/Runs/ln_sssp/run_sssp_ln.zsh similarity index 59% rename from Papers/ICS_2024/Runs/BFS/run_bfs_language.zsh rename to Papers/ICPP_2024/Runs/ln_sssp/run_sssp_ln.zsh index 1b13ce1..05f4bf8 100755 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_language.zsh +++ b/Papers/ICPP_2024/Runs/ln_sssp/run_sssp_ln.zsh @@ -1,21 +1,18 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - # Define other command-line arguments -GRAPH_TYPE="Language" +GRAPH_TYPE="LN" OUTPUT_DIR="." SHAPE="square" ROOT_NODE="3" -MEMORY_CC="102400" +MEMORY_CC="22528" HX="128" HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" +NETWORK="0" # 0: Mesh, 1: Torus +VERIFY="" # "-verify" # Parse command line arguments while [[ $# -gt 0 ]]; do @@ -40,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -48,5 +49,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/Real/language.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/SSSP_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/r18_bfs/experiment_5.zsh b/Papers/ICPP_2024/Runs/r18_bfs/experiment_5.zsh new file mode 100755 index 0000000..1803292 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_bfs/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") + +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/rmat_18_bfs/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/r18_bfs/job_cca_rmat.sh b/Papers/ICPP_2024/Runs/r18_bfs/job_cca_rmat.sh new file mode 100644 index 0000000..5602548 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_bfs/job_cca_rmat.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J bfs-r18-cca +#SBATCH -p general +#SBATCH -o r18-bfs_%j.txt +#SBATCH -e r18-bfs_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:55:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=1148000 +VICINITY[16]=2 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=512000 +VICINITY[32]=2 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=328000 +VICINITY[64]=3 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=52000 +VICINITY[128]=3 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=4096 + +ALLOCATOR_CONFIG=("VICINITY" "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + #max_edges=20 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=16384 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_bfs_rmat18.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/r18_bfs/r18_bfs.csv b/Papers/ICPP_2024/Runs/r18_bfs/r18_bfs.csv new file mode 100644 index 0000000..225c878 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_bfs/r18_bfs.csv @@ -0,0 +1,33 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,43236,5911486,496602,5414884,496602,424275,236,72.2387,72091,3678695,72327,489642371,128,128,20,20,3,ON,1,431800,181,52000,263.58837674062926,0.004013176821340894,4.3236e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,27182,5731090,475140,5255950,475140,411585,356,74.1421,63199,3582613,63555,357996660,128,128,20,20,3,ON,1,431800,90,52000,269.6724221032666,0.005863717376000264,2.7182e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,252909,6883133,617453,6265680,617453,494609,2968,89.8488,119876,4730187,122844,71392292,16,16,20,20,2,ON,1,431800,22,1148000,80.9887053728737,0.002631053879730131,0.000252909,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,138820,6589797,577951,6011846,577951,474393,7339,95.0955,96219,4632882,103558,51670368,16,16,20,20,2,ON,1,431800,11,1148000,81.08376858166491,0.0035323399301081626,0.00013882,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,142524,6390597,562562,5828035,562562,460459,899,77.9114,101204,4542208,102103,133181442,32,32,20,20,2,ON,1,431800,45,512000,145.52632834080987,0.003272886343484698,0.000142524,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,73700,6495548,562702,5932846,562702,467779,1713,90.1726,93210,5119766,94923,101607909,32,32,20,20,2,ON,1,431800,22,512000,145.9065811759747,0.004797274716264802,7.37e-05,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,83093,6028838,517544,5511294,517544,434573,421,67.6135,82550,4105304,82971,250600524,64,64,20,20,3,ON,1,431800,90,328000,375.6220256920066,0.004934300186289438,8.3093e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,52642,6043631,513324,5530307,513324,435471,618,67.1998,77235,4289223,77853,188930025,64,64,20,20,3,ON,1,431800,45,328000,377.143037032666,0.007279791751289518,5.2642e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,45731,6043379,511750,5531629,511750,433177,246,70.4524,78327,3736928,78573,498451920,128,128,20,20,3,ON,1,431800,181,52000,263.58837674062926,0.00408623798702846,4.5731e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,26836,5788920,481368,5307552,481368,415482,376,76.1892,65510,3710153,65886,361661754,128,128,20,20,3,ON,1,431800,90,52000,269.6724221032666,0.005923478334074705,2.6836e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,262281,6951262,621752,6329510,621752,499830,2993,87.822,118929,4813690,121922,72023191,16,16,20,20,2,ON,1,431800,22,1148000,80.9887053728737,0.0026554023693232134,0.000262281,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,138458,6589915,576366,6013549,576366,474280,7191,94.9966,94895,4684264,102086,51658604,16,16,20,20,2,ON,1,431800,11,1148000,81.08376858166491,0.003531483695189853,0.000138458,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,138528,6410886,562719,5848167,562719,461819,974,78.7223,99926,4600288,100900,133572856,32,32,20,20,2,ON,1,431800,45,512000,145.52632834080987,0.0032813089693972614,0.000138528,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,81097,6366189,551706,5814483,551706,458696,1654,83.6948,91356,4970256,93010,99649329,32,32,20,20,2,ON,1,431800,22,512000,145.9065811759747,0.004707174678399126,8.1097e-05,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,88858,6037283,520184,5517099,520184,435102,388,66.4753,84694,3992804,85082,249981783,64,64,20,20,3,ON,1,431800,90,328000,375.6220256920066,0.004926339482490881,8.8858e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,53374,5964029,511055,5452974,511055,430125,428,81.5392,80502,3784126,80930,186456624,64,64,20,20,3,ON,1,431800,45,328000,377.143037032666,0.007185491079936788,5.3374e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,44119,5850315,492505,5357810,492505,419773,250,70.8895,72482,3660648,72732,484551239,128,128,20,20,3,ON,1,431800,181,52000,263.58837674062926,0.003972040438260504,4.4119e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,28248,5846393,484045,5362348,484045,419473,331,77.5514,64241,3830688,64572,365335223,128,128,20,20,3,ON,1,431800,90,52000,269.6724221032666,0.005984130986808324,2.8248e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,259808,6869966,612081,6257885,612081,493936,2892,86.8031,115253,4671682,118145,71269578,16,16,20,20,2,ON,1,431800,22,1148000,80.9887053728737,0.0026276194974884657,0.000259808,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,139283,6578587,575488,6003099,575488,473553,7338,94.8788,94597,4594252,101935,51597432,16,16,20,20,2,ON,1,431800,11,1148000,81.08376858166491,0.0035274406425369357,0.000139283,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,145440,6420491,562052,5858439,562052,462602,830,76.8913,98620,4545809,99450,134296017,32,32,20,20,2,ON,1,431800,45,512000,145.52632834080987,0.003300650390481079,0.00014544,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,72070,6394874,553387,5841487,553387,460803,1740,91.5333,90844,5155347,92584,100107953,32,32,20,20,2,ON,1,431800,22,512000,145.9065811759747,0.004726291361011053,7.207e-05,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,82415,6021367,516889,5504478,516889,433687,400,68.0604,82802,4098849,83202,249971501,64,64,20,20,3,ON,1,431800,90,328000,375.6220256920066,0.004921614671050033,8.2415e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,53347,5934750,504790,5429960,504790,427901,548,70.3021,76341,4080251,76889,185533181,64,64,20,20,3,ON,1,431800,45,328000,377.143037032666,0.007150052471821584,5.3347e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,44633,6015068,508179,5506889,508179,431372,271,70.3519,76536,3779630,76807,497597549,128,128,20,20,3,ON,1,431800,181,52000,263.58837674062926,0.004078721610549695,4.4633e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,26994,5837529,485676,5351853,485676,418839,352,75.0153,66485,3555075,66837,364765973,128,128,20,20,3,ON,1,431800,90,52000,269.6724221032666,0.005974286686616974,2.6994e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,243163,6770692,602437,6168255,602437,487312,2967,90.2064,112158,4653115,115125,70192844,16,16,20,20,2,ON,1,431800,22,1148000,80.9887053728737,0.0025860049909964275,0.000243163,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,142429,6734002,590661,6143341,590661,484551,7346,95.2204,98764,4743932,106110,52790253,16,16,20,20,2,ON,1,431800,11,1148000,81.08376858166491,0.0036089944204951204,0.000142429,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,145618,6403709,563867,5839842,563867,461143,875,76.4979,101849,4527902,102724,133220168,32,32,20,20,2,ON,1,431800,45,512000,145.52632834080987,0.0032747012734168275,0.000145618,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,69886,6377349,549408,5827941,549408,459690,1630,92.6833,88088,5074235,89718,99817406,32,32,20,20,2,ON,1,431800,22,512000,145.9065811759747,0.00471203225920079,6.9886e-05,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,81789,5963909,509528,5454381,509528,430113,414,66.158,79001,4067877,79415,247969826,64,64,20,20,3,ON,1,431800,90,328000,375.6220256920066,0.004882186316742538,8.1789e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,52605,6082886,517253,5565633,517253,438347,533,72.3133,78373,4105834,78906,190209793,64,64,20,20,3,ON,1,431800,45,328000,377.143037032666,0.007328827830185644,5.2605e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_18.zsh b/Papers/ICPP_2024/Runs/r18_bfs/run_bfs_rmat18.zsh similarity index 61% rename from Papers/ICS_2024/Runs/BFS/run_bfs_rmat_18.zsh rename to Papers/ICPP_2024/Runs/r18_bfs/run_bfs_rmat18.zsh index ecb87e6..57e24d1 100755 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_18.zsh +++ b/Papers/ICPP_2024/Runs/r18_bfs/run_bfs_rmat18.zsh @@ -1,20 +1,17 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - # Define other command-line arguments -GRAPH_TYPE="RMAT" +GRAPH_TYPE="RMAT18" OUTPUT_DIR="." SHAPE="square" ROOT_NODE="0" -MEMORY_CC="502400" +MEMORY_CC="22528" HX="128" HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -40,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -48,6 +49,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/Synthetic/RMAT_ef_9_v_18.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/BFS_Rhizome_CCASimulator" # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/r18_pagerank/experiment_5.zsh b/Papers/ICPP_2024/Runs/r18_pagerank/experiment_5.zsh new file mode 100755 index 0000000..4527d25 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_pagerank/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("1") + +NETWORK="1" # TORUS +#NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Page_Rank_Fixed_Iterations_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/rmat_18_pagerank/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/r18_pagerank/job_cca_erdos.sh b/Papers/ICPP_2024/Runs/r18_pagerank/job_cca_erdos.sh new file mode 100644 index 0000000..6a46ee8 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_pagerank/job_cca_erdos.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J pr-r18-cca +#SBATCH -p general +#SBATCH -o r18-pr_%j.txt +#SBATCH -e r18-pr_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=00:55:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=1148000 +VICINITY[16]=2 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=512000 +VICINITY[32]=2 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=328000 +VICINITY[64]=3 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=52000 +VICINITY[128]=3 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=32768 + +ALLOCATOR_CONFIG=("VICINITY") # "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + #max_edges=20 + vicinity=2 + + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=32768 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_pagerank_rmat18.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/r18_pagerank/r18_pagrank.csv b/Papers/ICPP_2024/Runs/r18_pagerank/r18_pagrank.csv new file mode 100644 index 0000000..f19c83f --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_pagerank/r18_pagrank.csv @@ -0,0 +1,17 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,38745,5094839,5094839,0,591847,591847,0,65.4554,0,2783599,0,302183555,128,128,20,20,2,ON,1,431800,90,52000,269.6724221032666,0.00497863298510183,3.8745e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,348610,5094839,5094839,0,591847,591847,0,86.2843,0,3428297,0,37918710,16,16,20,20,2,ON,1,431800,11,1148000,81.08376858166491,0.0026516830518413257,0.00034861,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,148311,5094839,5094839,0,591847,591847,0,79.0706,0,3500249,0,75662088,32,32,20,20,2,ON,1,431800,22,512000,145.9065811759747,0.003619612615648336,0.000148311,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,65326,5094839,5094839,0,591847,591847,0,74.0568,0,3079339,0,151217024,64,64,20,20,2,ON,1,431800,45,328000,377.143037032666,0.005864822137677211,6.5326e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,37927,5094839,5094839,0,591847,591847,0,66.5303,0,2792302,0,302160966,128,128,20,20,2,ON,1,431800,90,52000,269.6724221032666,0.0049779055040352115,3.7927e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,356045,5094839,5094839,0,591847,591847,0,85.2296,0,3405849,0,37923918,16,16,20,20,2,ON,1,431800,11,1148000,81.08376858166491,0.0026531617104627995,0.000356045,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,146676,5094839,5094839,0,591847,591847,0,80.1379,0,3407462,0,75681236,32,32,20,20,2,ON,1,431800,22,512000,145.9065811759747,0.0036200667686600843,0.000146676,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,67601,5094839,5094839,0,591847,591847,0,71.4631,0,3117558,0,151178261,64,64,20,20,2,ON,1,431800,45,328000,377.143037032666,0.00586491644151214,6.7601e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,38273,5094839,5094839,0,591847,591847,0,65.8638,0,2801768,0,302151832,128,128,20,20,2,ON,1,431800,90,52000,269.6724221032666,0.004977908712416897,3.8273e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,351028,5094839,5094839,0,591847,591847,0,86.0669,0,3439828,0,37922594,16,16,20,20,2,ON,1,431800,11,1148000,81.08376858166491,0.0026523118581655318,0.000351028,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,148004,5094839,5094839,0,591847,591847,0,80.4771,0,3542664,0,75677978,32,32,20,20,2,ON,1,431800,22,512000,145.9065811759747,0.003620273363236715,0.000148004,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,64003,5094839,5094839,0,591847,591847,0,75.4102,0,3144098,0,151213253,64,64,20,20,2,ON,1,431800,45,328000,377.143037032666,0.0058637612525941915,6.4003e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,40768,5094839,5094839,0,591847,591847,0,63.6239,0,2786887,0,302095123,128,128,20,20,2,ON,1,431800,90,52000,269.6724221032666,0.004978081032358592,4.0768e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,349905,5094839,5094839,0,591847,591847,0,86.2181,0,3445668,0,37916861,16,16,20,20,2,ON,1,431800,11,1148000,81.08376858166491,0.002651754465399416,0.000349905,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,148706,5094839,5094839,0,591847,591847,0,78.6173,0,3420422,0,75675697,32,32,20,20,2,ON,1,431800,22,512000,145.9065811759747,0.003620356417677628,0.000148706,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,67662,5094839,5094839,0,591847,591847,0,73.0868,0,3040926,0,151158189,64,64,20,20,2,ON,1,431800,45,328000,377.143037032666,0.005864191286374494,6.7662e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_18.zsh b/Papers/ICPP_2024/Runs/r18_pagerank/run_pagerank_rmat18.zsh similarity index 61% rename from Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_18.zsh rename to Papers/ICPP_2024/Runs/r18_pagerank/run_pagerank_rmat18.zsh index 6c048a6..ff1b344 100755 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_18.zsh +++ b/Papers/ICPP_2024/Runs/r18_pagerank/run_pagerank_rmat18.zsh @@ -1,20 +1,17 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/SSSP_CCASimulator" - # Define other command-line arguments GRAPH_TYPE="RMAT" OUTPUT_DIR="." SHAPE="square" ROOT_NODE="0" -MEMORY_CC="502400" +MEMORY_CC="22528" HX="128" HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -40,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -48,6 +49,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/Synthetic/RMAT_ef_9_v_18.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/PageRank_Fixed_Iterations_Rhizome_CCASimulator" # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -iter 1 -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/r18_sssp/experiment_5.zsh b/Papers/ICPP_2024/Runs/r18_sssp/experiment_5.zsh new file mode 100755 index 0000000..19f213c --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_sssp/experiment_5.zsh @@ -0,0 +1,152 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2" "3") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") +NETWORK_VALUES=("0" "1") + +#NETWORK="1" # TORUS +NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Single_Source_Shortest_Path_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + for NETWORK in "${NETWORK_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "true" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/rmat_18_sssp/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" + done + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/r18_sssp/job_cca_rmat.sh b/Papers/ICPP_2024/Runs/r18_sssp/job_cca_rmat.sh new file mode 100644 index 0000000..3d85a77 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_sssp/job_cca_rmat.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J sssp-r18-cca +#SBATCH -p general +#SBATCH -o r18-bfs_%j.txt +#SBATCH -e r18-bfs_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=01:25:00 +#SBATCH --mem=100G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("16") +#CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=3148000 +VICINITY[16]=2 +MAX_EDGES[16]=20 + +MEMORY_CC[32]=1112000 +VICINITY[32]=2 +MAX_EDGES[32]=20 + +MEMORY_CC[64]=728000 +VICINITY[64]=3 +MAX_EDGES[64]=20 + +MEMORY_CC[128]=112000 +VICINITY[128]=3 +#VICINITY[128]=128 +MAX_EDGES[128]=20 + +MIN_EDGES=20 + +declare -A RHIZOME_CUTOFF + +# Not needed here +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("1") +ACTION_QUEUE_SIZE=4096 + +ALLOCATOR_CONFIG=("VICINITY" "RANDOM") + +for ALLOCATOR in "${ALLOCATOR_CONFIG[@]}"; do + for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + #max_edges=20 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=16384 + fi + + if [ "$ALLOCATOR" = "RANDOM" ]; then + vicinity=${CHIP_DIM} + fi + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -action_queue_size ${ACTION_QUEUE_SIZE} -script run_sssp_rmat18.zsh + done + done +done + diff --git a/Papers/ICPP_2024/Runs/r18_sssp/r18_sssp.csv b/Papers/ICPP_2024/Runs/r18_sssp/r18_sssp.csv new file mode 100644 index 0000000..6bd890c --- /dev/null +++ b/Papers/ICPP_2024/Runs/r18_sssp/r18_sssp.csv @@ -0,0 +1,33 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,58838,10183163,999826,9183337,999826,723155,642,83.738,276029,6149197,276671,829462198,128,128,20,20,3,ON,1,431800,181,112000,532.9144041378895,0.009663816743893166,5.8838e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,46214,9839114,958069,8881045,958069,699203,966,81.1846,257900,5706155,258866,614388181,128,128,20,20,3,ON,1,431800,90,112000,538.9984495005268,0.01422904785401955,4.6214e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,350600,10759644,1060858,9698786,1060858,767417,6470,91.7493,286971,7522517,293441,111290391,16,16,20,20,2,ON,1,431800,22,3148000,221.2626779756134,0.006803496058762449,0.0003506,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,200228,10251424,989525,9261899,989525,732796,16856,97.3282,239873,7239939,256729,80378366,16,16,20,20,2,ON,1,431800,11,3148000,221.3577411844046,0.009086540857910125,0.000200228,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,200023,10295056,1020805,9274251,1020805,734803,2074,83.0768,283928,7165225,286002,212571935,32,32,20,20,2,ON,1,431800,45,1112000,313.85509546409753,0.007683809116758347,0.000200023,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,99553,10284487,993103,9291384,993103,735226,4647,95.8381,253230,8337212,257877,160880415,32,32,20,20,2,ON,1,431800,22,1112000,314.23534829926245,0.011143839527731774,9.9553e-05,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,MESH,OFF,ON,4,105859,9946919,985733,8961186,985733,709979,1032,80.0136,274722,6742623,275754,410453388,64,64,20,20,3,ON,1,431800,90,728000,824.4987380207738,0.011981935468613,0.000105859,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +0,TORUS,OFF,ON,4,69592,9720354,954717,8765637,954717,694377,1339,84.0475,259001,6600526,260340,303782164,64,64,20,20,3,ON,1,431800,45,728000,826.019749361433,0.017328467009825783,6.9592e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,57567,10211141,994306,9216835,994306,726191,713,81.6589,267402,6266811,268115,834966980,128,128,20,20,3,ON,1,431800,181,112000,532.9144041378895,0.009726208612564296,5.7567e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,47712,10101936,1000111,9101825,1000111,717138,937,79.676,282036,5692301,282973,630520692,128,128,20,20,3,ON,1,431800,90,112000,538.9984495005268,0.014603031242177088,4.7712e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,358472,10964838,1079207,9885631,1079207,781752,6461,92.2198,290994,7627632,297455,113491785,16,16,20,20,2,ON,1,431800,22,3148000,221.2626779756134,0.006938428737322328,0.000358472,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,203908,10327005,997290,9329715,997290,738510,17273,96.4238,241507,7275270,258780,81003785,16,16,20,20,2,ON,1,431800,11,3148000,221.3577411844046,0.009158112815221258,0.000203908,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,197734,10316322,1026836,9289486,1026836,736546,2133,84.0604,288157,7199964,290290,213348079,32,32,20,20,2,ON,1,431800,45,1112000,313.85509546409753,0.007710054282883652,0.000197734,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,103676,10287050,992926,9294124,992926,735451,4678,94.1788,252797,8506658,257475,160918625,32,32,20,20,2,ON,1,431800,22,1112000,314.23534829926245,0.011148892167539526,0.000103676,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,MESH,OFF,ON,4,105550,9907617,981737,8925880,981737,707052,995,80.9135,273690,6592987,274685,407528615,64,64,20,20,3,ON,1,431800,90,728000,824.4987380207738,0.011897345876337274,0.00010555,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +1,TORUS,OFF,ON,4,77023,9546596,950489,8596107,950489,681779,1174,83.1815,267536,6092951,268710,298258084,64,64,20,20,3,ON,1,431800,45,728000,826.019749361433,0.017026803080018766,7.7023e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,58519,10442887,1019983,9422904,1019983,742289,715,81.1978,276979,6397534,277694,852507275,128,128,20,20,3,ON,1,431800,181,112000,532.9144041378895,0.009930357055088799,5.8519e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,44651,9767634,952451,8815183,952451,694124,1004,81.9919,257323,5775917,258327,610323592,128,128,20,20,3,ON,1,431800,90,112000,538.9984495005268,0.014133708065616753,4.4651e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,358228,10878473,1070406,9808067,1070406,775730,6326,92.3894,288350,7603074,294676,112549868,16,16,20,20,2,ON,1,431800,22,3148000,221.2626779756134,0.006881993043199919,0.000358228,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,210800,10602539,1027116,9575423,1027116,757535,18094,96.0481,251487,7536350,269581,83116343,16,16,20,20,2,ON,1,431800,11,3148000,221.3577411844046,0.009397643728284567,0.0002108,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,200518,10450498,1042431,9408067,1042431,745389,2117,84.1829,294925,7241635,297042,215678328,32,32,20,20,2,ON,1,431800,45,1112000,313.85509546409753,0.007794714657388513,0.000200518,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,124770,10212119,989314,9222805,989314,729779,3864,86.6575,255671,7782628,259535,159703964,32,32,20,20,2,ON,1,431800,22,1112000,314.23534829926245,0.011077610214868491,0.00012477,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,MESH,OFF,ON,4,102283,9833884,976772,8857112,976772,702039,1002,80.2562,273731,6767170,274733,404447452,64,64,20,20,3,ON,1,431800,90,728000,824.4987380207738,0.01180361231140328,0.000102283,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +2,TORUS,OFF,ON,4,65549,9667238,943152,8724086,943152,690958,1484,86.9372,250710,6900152,252194,302244930,64,64,20,20,3,ON,1,431800,45,728000,826.019749361433,0.017235061232584534,6.5549e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,57601,10297795,1003204,9294591,1003204,732177,692,82.0478,270335,6311241,271027,841304279,128,128,20,20,3,ON,1,431800,181,112000,532.9144041378895,0.009799680741755629,5.7601e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,43804,10035626,972598,9063028,972598,713000,1102,82.3775,258496,6345419,259598,626379462,128,128,20,20,3,ON,1,431800,90,112000,538.9984495005268,0.014503621875014654,4.3804e-05,22.9643,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,380567,11044605,1093209,9951396,1093209,787466,6006,90.923,299737,7581366,305743,113768999,16,16,20,20,2,ON,1,431800,22,3148000,221.2626779756134,0.006964401475414708,0.000380567,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,201137,10139823,983103,9156720,983103,725311,17096,96.3049,240696,7109088,257792,79504061,16,16,20,20,2,ON,1,431800,11,3148000,221.3577411844046,0.00898900578928036,0.000201137,1469.71,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,195812,10200493,1010030,9190463,1010030,728433,2189,82.3911,279408,7157792,281597,210797633,32,32,20,20,2,ON,1,431800,45,1112000,313.85509546409753,0.00761814582286114,0.000195812,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,99957,10323241,995945,9327296,995945,737811,4769,96.3685,253365,8426571,258134,161491018,32,32,20,20,2,ON,1,431800,22,1112000,314.23534829926245,0.011186145004382288,9.9957e-05,367.429,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,MESH,OFF,ON,4,101488,9774831,963499,8811332,963499,698308,1075,79.1132,264116,6687913,265191,403222871,64,64,20,20,3,ON,1,431800,90,728000,824.4987380207738,0.011766995178106962,0.000101488,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY +3,TORUS,OFF,ON,4,67155,9662560,947495,8715065,947495,689948,1293,85.2846,256254,6477969,257547,301878896,64,64,20,20,3,ON,1,431800,45,728000,826.019749361433,0.017216826044776666,6.7155e-05,91.8572,376247,262144,4718592,PATH-TO/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_amazon.zsh b/Papers/ICPP_2024/Runs/r18_sssp/run_sssp_rmat18.zsh similarity index 57% rename from Papers/ICS_2024/Runs/BFS/run_bfs_amazon.zsh rename to Papers/ICPP_2024/Runs/r18_sssp/run_sssp_rmat18.zsh index 91e9ec7..dc7e7a1 100755 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_amazon.zsh +++ b/Papers/ICPP_2024/Runs/r18_sssp/run_sssp_rmat18.zsh @@ -1,10 +1,7 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - # Define other command-line arguments -GRAPH_TYPE="Amazon" +GRAPH_TYPE="RMAT18" OUTPUT_DIR="." SHAPE="square" ROOT_NODE="0" @@ -14,7 +11,7 @@ HY="128" HDEPTH="0" HB="0" ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus +NETWORK="0" # 0: Mesh, 1: Torus VERIFY="" # "-verify" # Parse command line arguments @@ -40,6 +37,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -47,6 +48,15 @@ while [[ $# -gt 0 ]]; do esac done -INPUT_FILE="$DATASET_PATH/muchiSim/amazon0302.edgelist" +INPUT_FILE="$DATASET_PATH/Synthetic/RMAT_ef_9_v_18.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/SSSP_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICS_2024/Runs/SSSP/Experiment_5_Scaling/experiment_5.zsh b/Papers/ICPP_2024/Runs/r22_bfs/experiment_5.zsh similarity index 61% rename from Papers/ICS_2024/Runs/SSSP/Experiment_5_Scaling/experiment_5.zsh rename to Papers/ICPP_2024/Runs/r22_bfs/experiment_5.zsh index 477b437..7138d81 100755 --- a/Papers/ICS_2024/Runs/SSSP/Experiment_5_Scaling/experiment_5.zsh +++ b/Papers/ICPP_2024/Runs/r22_bfs/experiment_5.zsh @@ -3,11 +3,13 @@ # export OMP_NUM_THREADS=32 # Define possible values for each variable +TRAIL_VALUES=("0" "1" "2") THROTTLE_VALUES=("true") RECVBUFFSIZE_VALUES=("4") TERMINATION_VALUES=("false") -NETWORK="1" # TORUS +#NETWORK="1" # TORUS +NETWORK="0" # MESH # Function to calculate Pythagorean theorem pythagorean() { @@ -35,9 +37,6 @@ pythagorean() { echo "$hypotenuse" } -# REPO_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator" -# DATASET_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator/Papers/IPDPS_2024/Datasets" - # Parse command line arguments while [[ $# -gt 0 ]]; do case "$1" in @@ -66,6 +65,10 @@ while [[ $# -gt 0 ]]; do VICINITY_VAL="$2" shift 2 ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; -maxedge) MAX_EDGE="$2" shift 2 @@ -74,6 +77,14 @@ while [[ $# -gt 0 ]]; do MEMORY_CC="$2" shift 2 ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; -script) SCRIPT_TO_RUN="$2" shift 2 @@ -85,23 +96,50 @@ while [[ $# -gt 0 ]]; do esac done -AAP_PATH="$REPO_PATH/Applications/Single_Source_Shortest_Path" +AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search_Rhizome" # Create a function to run cmake with the given parameters run_cmake() { - CC="$CC_EXE" CXX="$CXX_EXE" cmake -S "$AAP_PATH" -B build -D ANIMATION=false -D VICINITY="$VICINITY_VAL" -D MAXEDGESPERVERTEX="$MAX_EDGE" -D THROTTLE="$1" -D RECVBUFFSIZE="$2" -D TERMINATION="$3" -D THROTTLE_CONGESTION_THRESHOLD="$4" - cmake --build build -j 6 + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE=4096 \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 } + # Nested loops to iterate through all combinations -for THROTTLE in "${THROTTLE_VALUES[@]}"; do +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do for TERMINATION in "${TERMINATION_VALUES[@]}"; do ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) # Run cmake with the current combination of values - run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" # Run the experiment - "$REPO_PATH/Papers/ICS_2024/Runs/SSSP/$SCRIPT_TO_RUN" -hx "$CHIP_SIZE_X" -hy "$CHIP_SIZE_Y" -dataset "$DATASET_PATH" -network "$NETWORK" -m "$MEMORY_CC" + "$REPO_PATH/rmat22/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" done done + done done diff --git a/Papers/ICPP_2024/Runs/r22_bfs/job_cca_r22.sh b/Papers/ICPP_2024/Runs/r22_bfs/job_cca_r22.sh new file mode 100644 index 0000000..9af0131 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r22_bfs/job_cca_r22.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J bfs-r22-cca +#SBATCH -p general +#SBATCH -o r22_bfs_%j.txt +#SBATCH -e r22_bfs_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=05:10:00 +#SBATCH --mem=170G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +#CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("64") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=34217728 +VICINITY[16]=3 +MAX_EDGES[16]=300 + +MEMORY_CC[32]=8108864 +VICINITY[32]=6 +MAX_EDGES[32]=100 + +MEMORY_CC[64]=1788608 +VICINITY[64]=7 +MAX_EDGES[64]=70 + +MEMORY_CC[128]=624304 +VICINITY[128]=8 +#VICINITY[128]=128 +MAX_EDGES[128]=85 + +MIN_EDGES=50 + +declare -A RHIZOME_CUTOFF + +RHIZOME_CUTOFF[1]=162800 + +RHIZOME_CUTOFF[2]=81400 + +RHIZOME_CUTOFF[4]=40700 + +RHIZOME_CUTOFF[8]=20350 + +RHIZOME_CUTOFF[16]=10175 + +#RHIZOMES=("16" "1" "4") +RHIZOMES=("16") + +for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=250 + + #vicinity=${CHIP_DIM} + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -script run_bfs_r22.zsh + done +done + diff --git a/Papers/ICPP_2024/Runs/r22_bfs/r22_bfs.csv b/Papers/ICPP_2024/Runs/r22_bfs/r22_bfs.csv new file mode 100644 index 0000000..88925f8 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r22_bfs/r22_bfs.csv @@ -0,0 +1,59 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,1273548,176731197,6079793,170651404,6079793,4904108,1084,62.8175,1174601,120132454,1175685,14947921299,128,128,50,250,8,ON,16,10175,181,624304,2832.5277564666567,0.4050340549484807,0.001273548,321.801,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,505940,162593216,5571641,157021575,5571641,4640226,1500,85.6235,929915,123135467,931415,10327069778,128,128,50,250,8,ON,16,10175,90,624304,2838.611801829294,0.549079485592574,0.00050594,321.801,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,3594305,168840134,6066640,162773494,6066640,4838125,4421,80.4199,1224094,119684601,1228515,3559884195,32,32,50,250,6,ON,16,10175,45,8108864,2276.8109135462896,0.35563632922216687,0.003594305,5148.81,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,1984384,174653836,6218135,168435701,6218135,5035087,8728,93.1776,1174320,140119861,1183048,2774487004,32,32,50,250,6,ON,16,10175,22,8108864,2277.1911663814544,0.5220764124872592,0.001984384,5148.81,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,1946433,171999492,6127217,165872275,6127217,4878458,2011,75.9557,1246748,123255076,1248759,7305912885,64,64,50,250,7,ON,16,10175,90,2188608,2463.581030623513,0.3721510886351513,0.001946433,1287.2,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,1318079,163822787,5682692,158140095,5682692,4584854,923,58.9627,1096915,114365330,1097838,13827582459,128,128,50,250,8,ON,16,10175,181,624304,2832.5277564666567,0.3754166720496461,0.001318079,321.801,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,581043,172897926,5924720,166973206,5924720,4885831,1618,83.4108,1037271,132248972,1038889,10980913248,128,128,50,250,8,ON,16,10175,90,624304,2838.611801829294,0.5840709005535263,0.000581043,321.801,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,3522861,169826445,6126102,163700343,6126102,4857753,4326,81.3041,1264023,120335026,1268349,3577692824,32,32,50,250,6,ON,16,10175,45,8108864,2276.8109135462896,0.35703301312326013,0.003522861,5148.81,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,2082228,178189863,6363352,171826511,6363352,5136870,9038,91.0003,1217444,144316572,1226482,2830905198,32,32,50,250,6,ON,16,10175,22,8108864,2277.1911663814544,0.5329388992521893,0.002082228,5148.81,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,1923457,164669081,5883808,158785273,5883808,4709487,1922,74.7163,1172399,118780304,1174321,6960900138,64,64,50,250,7,ON,16,10175,90,2188608,2463.581030623513,0.3548979661745356,0.001923457,1287.2,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,1020380,168001806,5868869,162132937,5868869,4842127,3081,89.1494,1023661,134458854,1026742,5336247090,64,64,50,250,7,ON,16,10175,45,1788608,2016.2253296354054,0.47610216398099026,0.00102038,1287.2,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,1277408,167312492,5746578,161565914,5746578,4662655,926,60.4572,1082997,116897437,1083923,14098259384,128,128,50,250,8,ON,16,10175,181,624304,2832.5277564666567,0.38241544458299254,0.001277408,321.801,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,675746,170433015,5772027,164660988,5772027,4819623,1420,71.7315,950984,125233499,952404,10825935206,128,128,50,250,8,ON,16,10175,90,624304,2838.611801829294,0.5763701403607722,0.000675746,321.801,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,3826620,177641181,6331489,171309692,6331489,5037598,4568,79.8195,1289323,126517973,1293891,3744588275,32,32,50,250,6,ON,16,10175,45,8108864,2276.8109135462896,0.37428460505110994,0.00382662,5148.81,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,1947110,171094125,6096346,164997779,6096346,4945309,8548,94.0121,1142489,139435585,1151037,2718092665,32,32,50,250,6,ON,16,10175,22,8108864,2277.1911663814544,0.511477765660194,0.00194711,5148.81,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,1861903,159223610,5677531,153546079,5677531,4569251,1819,73.8606,1106461,114829293,1108280,6728518999,64,64,50,250,7,ON,16,10175,90,2188608,2463.581030623513,0.34306252715265395,0.001861903,1287.2,5272386,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,1399016,171836592,5912973,165923619,5912973,4731605,792,65.3476,1180576,113239592,1181368,14490638666,128,128,50,250,8,ON,1,162800,181,624304,2832.5277564666567,0.3935123566981021,0.001399016,321.764,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,762128,171139993,5858238,165281755,5858238,4803711,1300,73.2862,1053227,122516653,1054527,10868827818,128,128,50,250,8,ON,1,162800,90,624304,2838.611801829294,0.5790956863958723,0.000762128,321.764,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,7113819,188661003,6839409,181821594,6839409,5331967,14919,87.5207,1492523,134695756,1507442,1972511602,16,16,50,250,3,ON,1,162800,22,34217728,2400.399765098901,0.41928112861457834,0.007113819,20592.9,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,4248044,189780477,6816500,182963977,6816500,5410486,36354,94.6052,1369660,150386500,1406014,1508625669,16,16,50,250,3,ON,1,162800,11,34217728,2400.4948283076924,0.5741349049011876,0.004248044,20592.9,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,3571507,165057017,5947166,159109851,5947166,4751902,4204,79.3405,1191060,116576302,1195264,3480364112,32,32,50,250,6,ON,1,162800,45,8108864,2276.8109135462896,0.3479384300968884,0.003571507,5148.22,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,1959922,169066567,6087670,162978897,6087670,4902939,8672,92.1275,1176059,136659400,1184731,2685619077,32,32,50,250,6,ON,1,162800,22,8108864,2277.1911663814544,0.5055218695023247,0.001959922,5148.22,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,2424663,168229453,5920836,162308617,5920836,4783338,1822,63.4684,1135676,119591155,1137498,7101060918,64,64,50,250,7,ON,1,162800,90,1788608,2014.704318294746,0.32841066439717015,0.002424663,1287.05,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,958143,161761358,5739663,156021695,5739663,4710579,3003,92.4408,1026081,130252854,1029084,5137845245,64,64,50,250,7,ON,1,162800,45,1788608,2016.2253296354054,0.4583092793927643,0.000958143,1287.05,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +10,TORUS,OFF,ON,4,862335,162962823,5570405,157392418,5570405,4568378,1135,62.7158,1000892,113808450,1002027,10349593634,128,128,50,250,8,ON,1,162800,90,624304,2838.611801829294,0.5521513316276725,0.000862335,321.764,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,1427004,172842472,6054201,166788271,6054201,4759524,911,63.6279,1293766,117033169,1294677,14572637771,128,128,50,250,8,ON,1,162800,181,624304,2832.5277564666567,0.39584562233735404,0.001427004,321.764,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,1088421,168995054,5793459,163201595,5793459,4682278,707,75.9341,1110474,132443703,1111181,10730723706,128,128,50,250,8,ON,1,162800,90,624304,2838.611801829294,0.5735099738542176,0.001088421,321.764,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,6969063,181846777,6600969,175245808,6600969,5185473,13902,86.6051,1401594,129096717,1415496,1904946282,16,16,50,250,3,ON,1,162800,22,34217728,2400.399765098901,0.40536515274743984,0.006969063,20592.9,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,4044820,179922080,6485327,173436753,6485327,5165659,34000,94.1747,1285668,140929850,1319668,1430169642,16,16,50,250,3,ON,1,162800,11,34217728,2400.4948283076924,0.5443571215367844,0.00404482,20592.9,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,3770582,170853956,6143937,164710019,6143937,4898782,4185,78.8029,1240970,120753185,1245155,3599975745,32,32,50,250,6,ON,1,162800,45,8108864,2276.8109135462896,0.36022343891458863,0.003770582,5148.22,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,2038763,174879177,6255866,168623311,6255866,5055269,8691,92.1319,1191906,143082377,1200597,2778142613,32,32,50,250,6,ON,1,162800,22,8108864,2277.1911663814544,0.5229860916244686,0.002038763,5148.22,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,2217822,164300462,5816759,158483703,5816759,4686446,1823,66.5912,1128490,117892606,1130313,6954650159,64,64,50,250,7,ON,1,162800,90,1788608,2014.704318294746,0.3210455466437646,0.002217822,1287.05,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,1018317,165824039,5869800,159954239,5869800,4803508,3048,89.5964,1063244,133678665,1066292,5266506020,64,64,50,250,7,ON,1,162800,45,1788608,2016.2253296354054,0.46992283591802636,0.001018317,1287.05,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,1360824,163927254,5618039,158309215,5618039,4548933,770,63.9822,1068336,109737006,1069106,13844636260,128,128,50,250,8,ON,1,162800,181,624304,2832.5277564666567,0.3760959902360873,0.001360824,321.764,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,825441,168732304,5740563,162991741,5740563,4692651,1113,73.1729,1046799,112745286,1047912,10715110200,128,128,50,250,8,ON,1,162800,90,624304,2838.611801829294,0.5712962870211132,0.000825441,321.764,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,6849957,184144478,6694613,177449865,6694613,5232392,14436,88.3287,1447785,129902549,1462221,1931250028,16,16,50,250,3,ON,1,162800,22,34217728,2400.399765098901,0.4099890346407363,0.006849957,20592.9,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,4018761,180002318,6469218,173533100,6469218,5168697,33948,94.7169,1266573,140623073,1300521,1430719651,16,16,50,250,3,ON,1,162800,11,34217728,2400.4948283076924,0.5444416582172188,0.004018761,20592.9,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,3877457,173720442,6207173,167513269,6207173,4953922,4403,77.3057,1248848,123340408,1253251,3660780717,32,32,50,250,6,ON,1,162800,45,8108864,2276.8109135462896,0.3664924643752573,0.003877457,5148.22,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,1891099,164969482,5972026,158997456,5972026,4813955,8632,92.6173,1149439,134056673,1158071,2620648173,32,32,50,250,6,ON,1,162800,22,8108864,2277.1911663814544,0.4932006509168865,0.001891099,5148.22,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,2269268,163018276,5805786,157212490,5805786,4660948,1744,66.4813,1143094,117279122,1144838,6891456856,64,64,50,250,7,ON,1,162800,90,1788608,2014.704318294746,0.3183997032711267,0.002269268,1287.05,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,1020893,170284659,5957586,164327073,5957586,4905754,2921,91.4556,1048911,136975021,1051832,5407929661,64,64,50,250,7,ON,1,162800,45,1788608,2016.2253296354054,0.48244798080136825,0.001020893,1287.05,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +3,TORUS,OFF,ON,4,2018097,177132971,6327193,170805778,6327193,5096896,8718,94.2717,1221579,145117745,1230297,2813979300,32,32,50,250,6,ON,1,162800,22,8108864,2277.1911663814544,0.5295311813128508,0.002018097,5148.22,5271777,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,1316514,160635609,5587408,155048201,5587408,4482824,838,63.9458,1103746,107610696,1104584,13578711340,128,128,50,250,8,ON,4,40700,181,624304,2832.5277564666567,0.3687760920137763,0.001316514,321.765,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,589465,167466809,5767577,161699232,5767577,4749325,1450,85.7172,1016802,126442995,1018252,10636748999,128,128,50,250,8,ON,4,40700,90,624304,2838.611801829294,0.5659055198654378,0.000589465,321.765,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,3747785,172138267,6195517,165942750,6195517,4915381,4525,79.6329,1275611,122557898,1280136,3632479123,32,32,50,250,6,ON,4,40700,45,8108864,2276.8109135462896,0.3632316290677557,0.003747785,5148.24,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,1957822,167799298,6074364,161724934,6074364,4885971,8649,91.911,1179744,137212139,1188393,2665348671,32,32,50,250,6,ON,4,40700,22,8108864,2277.1911663814544,0.5017608443377207,0.001957822,5148.24,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,MESH,OFF,ON,4,2270254,164576708,5839510,158737198,5839510,4691741,1796,65.5684,1145973,117670698,1147769,6969944496,64,64,50,250,7,ON,4,40700,90,1788608,2014.704318294746,0.321931055691561,0.002270254,1287.06,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,1058112,164548637,5848755,158699882,5848755,4770118,3025,86.8075,1075612,132787166,1078637,5226176482,64,64,50,250,7,ON,4,40700,45,1788608,2016.2253296354054,0.46650420857091246,0.001058112,1287.06,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,500428,163291139,5594045,157697094,5594045,4648242,1475,87.0477,944328,124307048,945803,10371257587,128,128,50,250,8,ON,4,40700,90,624304,2838.611801829294,0.5513884068702075,0.000500428,321.765,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,3517781,163915000,5963814,157951186,5963814,4724164,4358,80.2116,1235292,117732088,1239650,3449357110,32,32,50,250,6,ON,4,40700,45,8108864,2276.8109135462896,0.3447460564172922,0.003517781,5148.24,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,1865994,164271395,5961674,158309721,5961674,4792857,8365,93.817,1160452,133498098,1168817,2609455827,32,32,50,250,6,ON,4,40700,22,8108864,2277.1911663814544,0.49102143787916863,0.001865994,5148.24,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,MESH,OFF,ON,4,2044965,163034342,5843945,157190397,5843945,4683044,1959,70.835,1158942,118251396,1160901,6889865167,64,64,50,250,7,ON,4,40700,90,1788608,2014.704318294746,0.31748096600696746,0.002044965,1287.06,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,947358,161715262,5694494,156020768,5694494,4704786,3078,91.2817,986630,129145511,989708,5135782992,64,64,50,250,7,ON,4,40700,45,1788608,2016.2253296354054,0.4580858828727823,0.000947358,1287.06,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,794403,158706425,5490282,153216143,5490282,4484471,1002,79.3697,1004809,111942189,1005811,10078630358,128,128,50,250,8,ON,4,40700,90,624304,2838.611801829294,0.5374564913433886,0.000794403,321.765,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,3961130,168671153,6079464,162591689,6079464,4823843,4368,74.9179,1251253,119345410,1255621,3556797968,32,32,50,250,6,ON,4,40700,45,8108864,2276.8109135462896,0.35691229899924476,0.00396113,5148.24,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,1896872,165002897,5953061,159049836,5953061,4826466,8188,93.4909,1118407,134951727,1126595,2621295587,32,32,50,250,6,ON,4,40700,22,8108864,2277.1911663814544,0.4933451005463613,0.001896872,5148.24,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,MESH,OFF,ON,4,2068339,165977983,5941163,160036820,5941163,4732356,1999,71.2749,1206808,120839262,1208807,7000490520,64,64,50,250,7,ON,4,40700,90,1788608,2014.704318294746,0.32254373261484265,0.002068339,1287.06,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,1023316,169976248,5974515,164001733,5974515,4897630,3041,91.278,1073844,136833775,1076885,5398589021,64,64,50,250,7,ON,4,40700,45,1788608,2016.2253296354054,0.48163059127139596,0.001023316,1287.06,5271802,4194303,128311436,PATH-TO-CCA-REPO/Datasets/muchiSim/kron22.edgelist,XY diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_22.zsh b/Papers/ICPP_2024/Runs/r22_bfs/run_bfs_r22.zsh similarity index 60% rename from Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_22.zsh rename to Papers/ICPP_2024/Runs/r22_bfs/run_bfs_r22.zsh index 49ac490..110d64f 100755 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_22.zsh +++ b/Papers/ICPP_2024/Runs/r22_bfs/run_bfs_r22.zsh @@ -1,21 +1,19 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/SSSP_CCASimulator" # Define other command-line arguments GRAPH_TYPE="RMAT" OUTPUT_DIR="." SHAPE="square" ROOT_NODE="0" #"1345716" -MEMORY_CC="8388608" +MEMORY_CC="8388608" # This is just here not used as it will be initialized below form cmd HX="128" HY="128" HDEPTH="0" HB="0" ROUTE="0" NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" +VERIFY="-verify" # Parse command line arguments while [[ $# -gt 0 ]]; do @@ -40,6 +38,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -48,5 +50,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/muchiSim/kron22.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/BFS_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_22.zsh b/Papers/ICPP_2024/Runs/r22_bfs/run_bfs_rmat_22.zsh similarity index 95% rename from Papers/ICS_2024/Runs/BFS/run_bfs_rmat_22.zsh rename to Papers/ICPP_2024/Runs/r22_bfs/run_bfs_rmat_22.zsh index c1a50d1..8ac8a0e 100755 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_22.zsh +++ b/Papers/ICPP_2024/Runs/r22_bfs/run_bfs_rmat_22.zsh @@ -1,7 +1,7 @@ #!/bin/zsh # Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" +EXECUTABLE="./build/BFS_Rhizome_CCASimulator" # to be invoked wih: -vicinity 7 -maxedge 130 diff --git a/Papers/ICPP_2024/Runs/r22_pagerank/experiment_5.zsh b/Papers/ICPP_2024/Runs/r22_pagerank/experiment_5.zsh new file mode 100755 index 0000000..4081874 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r22_pagerank/experiment_5.zsh @@ -0,0 +1,146 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") + +NETWORK="1" # TORUS +# NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Page_Rank_Fixed_Iterations_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_R${5}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE=100000 \ + -D DIFFUSE_QUEUE_SIZE=32768 \ + -D WEIGHT="$7" + cmake --build build_${8}_R${5}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/r22_pagerank/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -rhizomes "$RHIZOMES" \ + -trail "$TRAIL" + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/r22_pagerank/job_cca_r22.sh b/Papers/ICPP_2024/Runs/r22_pagerank/job_cca_r22.sh new file mode 100644 index 0000000..bb7bfcd --- /dev/null +++ b/Papers/ICPP_2024/Runs/r22_pagerank/job_cca_r22.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J pr-r22-cca +#SBATCH -p general +#SBATCH -o r22_pr_%j.txt +#SBATCH -e r22_pr_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=02:30:00 +#SBATCH --mem=170G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +#CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("64") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=29217728 +VICINITY[16]=5 +MAX_EDGES[16]=1500 + +MEMORY_CC[32]=8108864 +VICINITY[32]=7 +MAX_EDGES[32]=600 + +MEMORY_CC[64]=2588608 +VICINITY[64]=10 +MAX_EDGES[64]=300 + +MEMORY_CC[128]=624304 +VICINITY[128]=12 +#VICINITY[128]=128 +MAX_EDGES[128]=230 + +MIN_EDGES=50 + +declare -A RHIZOME_CUTOFF + +RHIZOME_CUTOFF[1]=162800 + +RHIZOME_CUTOFF[2]=81400 + +RHIZOME_CUTOFF[4]=40700 + +RHIZOME_CUTOFF[8]=20350 + +RHIZOME_CUTOFF[16]=10175 + +#RHIZOMES=("1" "16" "4") +RHIZOMES=("16") + +for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + + max_edges=250 + vicinity=2 + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -script run_pagerank_r22.zsh + done +done + diff --git a/Papers/ICPP_2024/Runs/r22_pagerank/r22_pagerank.csv b/Papers/ICPP_2024/Runs/r22_pagerank/r22_pagerank.csv new file mode 100644 index 0000000..76a0f43 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r22_pagerank/r22_pagerank.csv @@ -0,0 +1,28 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,570403,133583197,133583197,0,7666053,7666053,0,75.6964,0,84755769,0,8213352668,128,128,50,250,2,ON,16,10175,90,624304,2838.611801829294,0.4381830276888316,0.000570403,321.801,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,2929482,133583197,133583197,0,7666053,7666053,0,83.2344,0,100688988,0,2054623539,32,32,50,250,2,ON,16,10175,22,8108864,2277.1911663814544,0.39347212743242366,0.002929482,5148.81,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,1211817,133583197,133583197,0,7666053,7666053,0,80.722,0,95458848,0,4107801163,64,64,50,250,2,ON,16,10175,45,2588608,2913.9787542929394,0.44418250282247634,0.001211817,1287.2,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,590109,133583197,133583197,0,7666053,7666053,0,74.7083,0,87680273,0,8213713024,128,128,50,250,2,ON,16,10175,90,624304,2838.611801829294,0.43830603338401225,0.000590109,321.801,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,2853891,133583197,133583197,0,7666053,7666053,0,84.8497,0,101268451,0,2054614420,32,32,50,250,2,ON,16,10175,22,8108864,2277.1911663814544,0.3931467232063811,0.002853891,5148.81,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,1247152,133583197,133583197,0,7666053,7666053,0,82.0634,0,95707352,0,4107895457,64,64,50,250,2,ON,16,10175,45,2588608,2913.9787542929394,0.44438575110795175,0.001247152,1287.2,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,561931,133583197,133583197,0,7666053,7666053,0,77.4178,0,87754515,0,8213419537,128,128,50,250,2,ON,16,10175,90,624304,2838.611801829294,0.4381418696191803,0.000561931,321.801,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,2985590,133583197,133583197,0,7666053,7666053,0,82.6749,0,99912948,0,2054838973,32,32,50,250,2,ON,16,10175,22,8108864,2277.1911663814544,0.39375224650939206,0.00298559,5148.81,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,1246654,133583197,133583197,0,7666053,7666053,0,79.5672,0,93911872,0,4107730420,64,64,50,250,2,ON,16,10175,45,2588608,2913.9787542929394,0.4443654884135036,0.001246654,1287.2,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,842715,133580038,133580038,0,7664835,7664835,0,68.7681,0,74603001,0,8213994228,128,128,50,250,2,ON,1,162800,90,624304,2838.611801829294,0.4396534647430756,0.000842715,321.764,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,7242284,133580038,133580038,0,7664835,7664835,0,88.4742,0,102333443,0,1028099696,16,16,50,250,2,ON,1,162800,11,29217728,2049.809896800843,0.378037490461425,0.007242284,20592.9,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,2993723,133580038,133580038,0,7664835,7664835,0,84.0941,0,98405345,0,2054565696,32,32,50,250,2,ON,1,162800,22,8108864,2277.1911663814544,0.3937365195291327,0.002993723,5148.22,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,1337726,133580038,133580038,0,7664835,7664835,0,76.9656,0,88318689,0,4107428572,64,64,50,250,2,ON,1,162800,45,1788608,2016.2253296354054,0.3691542570100716,0.001337726,1287.05,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,930308,133580038,133580038,0,7664835,7664835,0,72.4902,0,80707676,0,8213251134,128,128,50,250,2,ON,1,162800,90,624304,2838.611801829294,0.4400762684012573,0.000930308,321.764,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,6956069,133580038,133580038,0,7664835,7664835,0,89.3547,0,103688781,0,1028219459,16,16,50,250,2,ON,1,162800,11,29217728,2049.809896800843,0.37697403913276706,0.006956069,20592.9,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,2995931,133580038,133580038,0,7664835,7664835,0,83.2498,0,97913006,0,2054643178,32,32,50,250,2,ON,1,162800,22,8108864,2277.1911663814544,0.393760302836717,0.002995931,5148.22,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,1634848,133580038,133580038,0,7664835,7664835,0,80.254,0,91726859,0,4107994709,64,64,50,250,2,ON,1,162800,45,1788608,2016.2253296354054,0.3703269604100534,0.001634848,1287.05,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,856070,133580038,133580038,0,7664835,7664835,0,69.4959,0,73733285,0,8212752875,128,128,50,250,2,ON,1,162800,90,624304,2838.611801829294,0.4396582964131968,0.00085607,321.764,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,6941741,133580038,133580038,0,7664835,7664835,0,89.8855,0,103946857,0,1028250493,16,16,50,250,2,ON,1,162800,11,29217728,2049.809896800843,0.3769293046206301,0.006941741,20592.9,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,2972364,133580038,133580038,0,7664835,7664835,0,83.5085,0,99198943,0,2054629733,32,32,50,250,2,ON,1,162800,22,8108864,2277.1911663814544,0.3936568911271061,0.002972364,5148.22,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,1385420,133580038,133580038,0,7664835,7664835,0,74.2792,0,85880245,0,4107616333,64,64,50,250,2,ON,1,162800,45,1788608,2016.2253296354054,0.3693510640323555,0.00138542,1287.05,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,2874613,133580119,133580119,0,7664885,7664885,0,84.7178,0,100588823,0,2054634438,32,32,50,250,2,ON,4,40700,22,8108864,2277.1911663814544,0.39323914370361546,0.002874613,5148.24,5271802,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,1266639,133580119,133580119,0,7664885,7664885,0,78.7734,0,93361336,0,4107507765,64,64,50,250,2,ON,4,40700,45,1788608,2016.2253296354054,0.3688926608357071,0.001266639,1287.06,5271802,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,3065399,133580119,133580119,0,7664885,7664885,0,81.5318,0,98267504,0,2054835273,32,32,50,250,2,ON,4,40700,22,8108864,2277.1911663814544,0.394093320910783,0.003065399,5148.24,5271802,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,1295960,133580119,133580119,0,7664885,7664885,0,78.3859,0,91640213,0,4107600888,64,64,50,250,2,ON,4,40700,45,1788608,2016.2253296354054,0.36901168053254596,0.00129596,1287.06,5271802,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,2996719,133580119,133580119,0,7664885,7664885,0,82.2785,0,98809631,0,2054734214,32,32,50,250,2,ON,4,40700,22,8108864,2277.1911663814544,0.39378051194129454,0.002996719,5148.24,5271802,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,1266214,133580119,133580119,0,7664885,7664885,0,81.4571,0,92513460,0,4107502663,64,64,50,250,2,ON,4,40700,45,1788608,2016.2253296354054,0.3688906039761458,0.001266214,1287.06,5271802,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/r22_pagerank/run_pagerank_r22.zsh b/Papers/ICPP_2024/Runs/r22_pagerank/run_pagerank_r22.zsh new file mode 100755 index 0000000..e7f355d --- /dev/null +++ b/Papers/ICPP_2024/Runs/r22_pagerank/run_pagerank_r22.zsh @@ -0,0 +1,66 @@ +#!/bin/zsh + +# Define other command-line arguments +GRAPH_TYPE="RMAT" +OUTPUT_DIR="." +SHAPE="square" +ROOT_NODE="0" +MEMORY_CC="22528" +HX="128" +HY="128" +HDEPTH="0" +HB="0" +ROUTE="0" +NETWORK="0" # 0: Mesh, 1: Torus +VERIFY="" # "-verify" + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -hx) + HX="$2" + shift 2 + ;; + -hy) + HY="$2" + shift 2 + ;; + -m) + MEMORY_CC="$2" + shift 2 + ;; + -dataset) + DATASET_PATH="$2" + shift 2 + ;; + -network) + NETWORK="$2" + shift 2 + ;; + -rhizomes) + RHIZOME="$2" + shift 2 + ;; + -trail) + TRAIL="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +INPUT_FILE="$DATASET_PATH/muchiSim/kron22.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_R${RHIZOME}_${TRAIL}/PageRank_Fixed_Iterations_Rhizome_CCASimulator" + +# Run the command +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -iter 1 -trail $TRAIL diff --git a/Papers/ICS_2024/Runs/BFS/Experiment_5_Scaling/experiment_5.zsh b/Papers/ICPP_2024/Runs/r22_sssp/experiment_5.zsh similarity index 62% rename from Papers/ICS_2024/Runs/BFS/Experiment_5_Scaling/experiment_5.zsh rename to Papers/ICPP_2024/Runs/r22_sssp/experiment_5.zsh index 15bf497..6c751bf 100755 --- a/Papers/ICS_2024/Runs/BFS/Experiment_5_Scaling/experiment_5.zsh +++ b/Papers/ICPP_2024/Runs/r22_sssp/experiment_5.zsh @@ -3,6 +3,7 @@ # export OMP_NUM_THREADS=32 # Define possible values for each variable +TRAIL_VALUES=("0" "1") THROTTLE_VALUES=("true") RECVBUFFSIZE_VALUES=("4") TERMINATION_VALUES=("false") @@ -36,9 +37,6 @@ pythagorean() { echo "$hypotenuse" } -# REPO_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator" -# DATASET_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator/Papers/IPDPS_2024/Datasets" - # Parse command line arguments while [[ $# -gt 0 ]]; do case "$1" in @@ -67,6 +65,10 @@ while [[ $# -gt 0 ]]; do VICINITY_VAL="$2" shift 2 ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; -maxedge) MAX_EDGE="$2" shift 2 @@ -75,6 +77,14 @@ while [[ $# -gt 0 ]]; do MEMORY_CC="$2" shift 2 ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; -script) SCRIPT_TO_RUN="$2" shift 2 @@ -86,23 +96,50 @@ while [[ $# -gt 0 ]]; do esac done -AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search" +AAP_PATH="$REPO_PATH/Applications/Single_Source_Shortest_Path_Rhizome" # Create a function to run cmake with the given parameters run_cmake() { - CC="$CC_EXE" CXX="$CXX_EXE" cmake -S "$AAP_PATH" -B build -D ACTIVE_PERCENT=false -D ANIMATION=false -D VICINITY="$VICINITY_VAL" -D MAXEDGESPERVERTEX="$MAX_EDGE" -D THROTTLE="$1" -D RECVBUFFSIZE="$2" -D TERMINATION="$3" -D THROTTLE_CONGESTION_THRESHOLD="$4" - cmake --build build -j 6 + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE=4096 \ + -D DIFFUSE_QUEUE_SIZE=16384 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 } + # Nested loops to iterate through all combinations -for THROTTLE in "${THROTTLE_VALUES[@]}"; do +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do for TERMINATION in "${TERMINATION_VALUES[@]}"; do ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) # Run cmake with the current combination of values - run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "true" "$CHIP_SIZE_X" "$TRAIL" # Run the experiment - "$REPO_PATH/Papers/ICS_2024/Runs/BFS/$SCRIPT_TO_RUN" -hx "$CHIP_SIZE_X" -hy "$CHIP_SIZE_Y" -dataset "$DATASET_PATH" -network "$NETWORK" -m "$MEMORY_CC" + "$REPO_PATH/r22_sssp/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" done done + done done diff --git a/Papers/ICPP_2024/Runs/r22_sssp/job_cca_wikipedia.sh b/Papers/ICPP_2024/Runs/r22_sssp/job_cca_wikipedia.sh new file mode 100644 index 0000000..d072a8f --- /dev/null +++ b/Papers/ICPP_2024/Runs/r22_sssp/job_cca_wikipedia.sh @@ -0,0 +1,88 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J sssp-r22-cca +#SBATCH -p general +#SBATCH -o r22_%j.txt +#SBATCH -e r22_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=04:20:00 +#SBATCH --mem=170G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +#CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("64") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=32435456 +VICINITY[16]=3 +MAX_EDGES[16]=300 + +MEMORY_CC[32]=8108864 +VICINITY[32]=6 +MAX_EDGES[32]=100 + +MEMORY_CC[64]=3610380 #1388608 +VICINITY[64]=7 +MAX_EDGES[64]=70 + +MEMORY_CC[128]=1103190 #424304 +VICINITY[128]=8 +#VICINITY[128]=128 +MAX_EDGES[128]=85 + +MIN_EDGES=50 + +declare -A RHIZOME_CUTOFF + +RHIZOME_CUTOFF[1]=162800 + +RHIZOME_CUTOFF[2]=81400 + +RHIZOME_CUTOFF[4]=40700 + +RHIZOME_CUTOFF[8]=20350 + +RHIZOME_CUTOFF[16]=10175 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("16") + +for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + #max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=250 + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -script run_sssp_r22.zsh + done +done + diff --git a/Papers/ICPP_2024/Runs/r22_sssp/r22_sssp.csv b/Papers/ICPP_2024/Runs/r22_sssp/r22_sssp.csv new file mode 100644 index 0000000..ad0a129 --- /dev/null +++ b/Papers/ICPP_2024/Runs/r22_sssp/r22_sssp.csv @@ -0,0 +1,16 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,2672870,757996278,27992851,730003427,27992851,18571578,6171,94.049,9415102,544953416,9421273,48096410656,128,128,50,250,8,ON,16,10175,90,1103190,4988.219534432034,3.397624762745866,0.00267287,321.801,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,3713160,797484389,27694989,769789400,27694989,19601149,21922,94.4805,8071918,653912452,8093840,25309731143,64,64,50,250,7,ON,16,10175,45,3610380,4060.6028945669127,3.2059756443753367,0.00371316,1287.2,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,2938147,746331844,26717581,719614263,26717581,18150908,5643,92.6046,8561030,566636133,8566673,47353953895,128,128,50,250,8,ON,16,10175,90,1103190,4988.219534432034,3.3480299532960505,0.002938147,321.801,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,3698828,816640061,28173387,788466674,28173387,20169098,21997,96.4092,7982292,661511674,8004289,25919788332,64,64,50,250,7,ON,16,10175,45,3610380,4060.6028945669127,3.282458415057599,0.003698828,1287.2,5272386,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,3163400,749090209,28597475,720492734,28597475,18318452,6277,88.7794,10272746,572766736,10279023,47515952887,128,128,50,250,8,ON,1,162800,90,1103190,4988.219534432034,3.361498492185494,0.0031634,321.764,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,17316509,825162672,28177354,796985318,28177354,20243063,169597,95.3264,7764694,657014036,7934291,6555834781,16,16,50,250,3,ON,1,162800,11,32435456,2275.4916414583777,2.422133118677518,0.017316509,20592.9,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,7829791,779357203,27087681,752269522,27087681,19247834,48006,95.2848,7791841,654389522,7839847,12373726856,32,32,50,250,6,ON,1,162800,22,8108864,2277.1911663814544,2.32399875459677,0.007829791,5148.22,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +0,TORUS,OFF,ON,4,3831876,749933488,26429323,723504165,26429323,18431109,21446,92.1422,7976768,626310508,7998214,23800848828,64,64,50,250,7,ON,1,162800,45,3610380,4060.6028945669127,3.017441517229729,0.003831876,1287.05,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +10,TORUS,OFF,ON,4,2866580,688183911,27045406,661138505,27045406,17036776,5432,89.9523,10003198,498505227,10008630,43653055795,128,128,50,250,8,ON,1,162800,90,1103190,4988.219534432034,3.087853195605841,0.00286658,321.764,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +10,TORUS,OFF,ON,4,8913500,879306582,29607427,849699155,29607427,21447420,49265,93.8717,8110742,731100583,8160007,13962270121,32,32,50,250,6,ON,1,162800,22,8108864,2277.1911663814544,2.622686086210674,0.0089135,5148.22,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,16891179,804047661,27882930,776164731,27882930,19829465,173876,95.2388,7879589,639020289,8053465,6387595932,16,16,50,250,3,ON,1,162800,11,32435456,2275.4916414583777,2.3600589543381765,0.016891179,20592.9,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,7863255,774932588,27076194,747856394,27076194,19202816,48510,94.3709,7824868,647963793,7873378,12304991742,32,32,50,250,6,ON,1,162800,22,8108864,2277.1911663814544,2.3114190467869538,0.007863255,5148.22,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +1,TORUS,OFF,ON,4,3639960,757878303,26559345,731318958,26559345,18676124,21597,92.1461,7861624,624223153,7883221,24053661777,64,64,50,250,7,ON,1,162800,45,3610380,4060.6028945669127,3.047717912589448,0.00363996,1287.05,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,7613384,750375526,26593110,723782416,26593110,18617845,49340,94.4005,7925925,627074425,7975265,11913519288,32,32,50,250,6,ON,1,162800,22,8108864,2277.1911663814544,2.237886543578084,0.007613384,5148.22,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY +2,TORUS,OFF,ON,4,3882270,772790901,27075347,745715554,27075347,18891828,19988,91.551,8163531,639137610,8183519,24529507088,64,64,50,250,7,ON,1,162800,45,3610380,4060.6028945669127,3.1093084717793995,0.00388227,1287.05,5271777,4194303,128311436,PATH-TO/Datasets/muchiSim/kron22.edgelist,XY diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_16.zsh b/Papers/ICPP_2024/Runs/r22_sssp/run_sssp_r22.zsh similarity index 54% rename from Papers/ICS_2024/Runs/BFS/run_bfs_rmat_16.zsh rename to Papers/ICPP_2024/Runs/r22_sssp/run_sssp_r22.zsh index aecd2b8..ecdd609 100755 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_16.zsh +++ b/Papers/ICPP_2024/Runs/r22_sssp/run_sssp_r22.zsh @@ -1,24 +1,19 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# Define the input file path -# DATASET_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator/Papers/IPDPS_2024/Datasets" # Define other command-line arguments GRAPH_TYPE="RMAT" OUTPUT_DIR="." SHAPE="square" -ROOT_NODE="0" -MEMORY_CC="24576" +ROOT_NODE="0" #"1345716" +MEMORY_CC="8388608" # This is just here not used as it will be initialized below form cmd HX="128" HY="128" HDEPTH="0" HB="0" ROUTE="0" NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" +VERIFY="-verify" # Parse command line arguments while [[ $# -gt 0 ]]; do @@ -43,6 +38,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -50,7 +49,15 @@ while [[ $# -gt 0 ]]; do esac done -INPUT_FILE="$DATASET_PATH/Synthetic/RMAT_ef_8_v_16.edgelist" +INPUT_FILE="$DATASET_PATH/muchiSim/kron22.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/SSSP_Rhizome_CCASimulator" # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/wk_bfs/experiment_5.zsh b/Papers/ICPP_2024/Runs/wk_bfs/experiment_5.zsh new file mode 100755 index 0000000..658f000 --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_bfs/experiment_5.zsh @@ -0,0 +1,154 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") + +NETWORK="1" # TORUS +#NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -action_queue_size) + ACTION_QUEUE_SIZE="$2" + shift 2 + ;; + -diffuse_queue_size) + DIFFUSE_QUEUE_SIZE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_R${5}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE="$ACTION_QUEUE_SIZE" \ + -D DIFFUSE_QUEUE_SIZE="$DIFFUSE_QUEUE_SIZE" \ + -D WEIGHT="$7" + cmake --build build_${8}_R${5}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/wikipedia/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -rhizomes "$RHIZOMES" \ + -trail "$TRAIL" + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/wk_bfs/job_cca_wikipedia.sh b/Papers/ICPP_2024/Runs/wk_bfs/job_cca_wikipedia.sh new file mode 100644 index 0000000..4810802 --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_bfs/job_cca_wikipedia.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J bfs-wiki-cca +#SBATCH -p general +#SBATCH -o wikipedia_%j.txt +#SBATCH -e wikipedia_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=03:20:00 +#SBATCH --mem=170G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +#CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("64") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=22217728 +VICINITY[16]=3 +MAX_EDGES[16]=300 + +MEMORY_CC[32]=6108864 +VICINITY[32]=6 +MAX_EDGES[32]=100 + +MEMORY_CC[64]=1588608 +VICINITY[64]=7 +MAX_EDGES[64]=70 + +MEMORY_CC[128]=424304 +VICINITY[128]=8 +#VICINITY[128]=128 +MAX_EDGES[128]=85 + +MIN_EDGES=50 + +declare -A RHIZOME_CUTOFF + +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "4") +RHIZOMES=("$2") + +ACTION_QUEUE_SIZE=4096 +DIFFUSE_QUEUE_SIZE=8192 + +for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=250 + + if [ "$CHIP_DIM" -eq 16 ]; then + ACTION_QUEUE_SIZE=32768 + DIFFUSE_QUEUE_SIZE=32768 + fi + + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} \ + -action_queue_size ${ACTION_QUEUE_SIZE} \ + -diffuse_queue_size ${DIFFUSE_QUEUE_SIZE} \ + -script run_bfs_wikipedia.zsh + done +done + diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_wikipedia.zsh b/Papers/ICPP_2024/Runs/wk_bfs/run_bfs_wikipedia.zsh similarity index 61% rename from Papers/ICS_2024/Runs/SSSP/run_sssp_wikipedia.zsh rename to Papers/ICPP_2024/Runs/wk_bfs/run_bfs_wikipedia.zsh index 1cfc8c3..116487e 100755 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_wikipedia.zsh +++ b/Papers/ICPP_2024/Runs/wk_bfs/run_bfs_wikipedia.zsh @@ -1,14 +1,11 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/SSSP_CCASimulator" - # Define other command-line arguments GRAPH_TYPE="Wikipedia" OUTPUT_DIR="." SHAPE="square" -ROOT_NODE="0" #"3895627" +ROOT_NODE="0" # "3895627" MEMORY_CC="825280" HX="128" HY="128" @@ -41,6 +38,14 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -rhizomes) + RHIZOME="$2" + shift 2 + ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -49,5 +54,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/muchiSim/wikipedia.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_R${RHIZOME}_${TRAIL}/BFS_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/wk_bfs/wk_bfs.csv b/Papers/ICPP_2024/Runs/wk_bfs/wk_bfs.csv new file mode 100644 index 0000000..12fc9da --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_bfs/wk_bfs.csv @@ -0,0 +1,69 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,MESH,OFF,ON,4,1059702,147974692,9189479,138785213,9189479,6827338,2652,69.8649,2359489,100155120,2362141,12498254729,128,128,50,250,8,ON,16,26987,181,424304,1934.7743318091223,0.279145005233425,0.001059702,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,728797,144800964,8918065,135882899,8918065,6686077,3415,78.1678,2228573,104867969,2231988,9207377868,128,128,50,250,8,ON,16,26987,90,424304,1940.8583771717597,0.4055372264797137,0.000728797,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,6755624,173228348,11162339,162066009,11162339,7924648,45329,87.5595,3192362,125992498,3237691,1822343466,16,16,50,250,3,ON,16,26987,22,22217728,1558.755929482463,0.308162818203246,0.006755624,19076.4,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,3458546,167743587,10728593,157014994,10728593,7678628,15093,84.5828,3034872,123935294,3049965,3557607154,32,32,50,250,6,ON,16,26987,45,6108864,1715.7150231353303,0.30641413873584217,0.003458546,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,1863752,165282781,10266588,155016193,10266588,7604940,28344,94.0351,2633304,137454315,2661648,2628627835,32,32,50,250,6,ON,16,26987,22,6108864,1716.095275970495,0.428499271183889,0.001863752,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,1876552,157206338,9924259,147282079,9924259,7245142,6340,76.3526,2672777,115506027,2679117,6679639877,64,64,50,250,7,ON,16,26987,90,1588608,1790.2659621303628,0.28942455233447306,0.001876552,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,1282436,157052860,9835661,147217199,9835661,7200897,9393,80.7798,2625371,112443886,2634764,4994048754,64,64,50,250,7,ON,16,26987,45,1588608,1791.7869734710223,0.4209891832046909,0.001282436,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +10,TORUS,OFF,ON,4,866872,147777381,9139618,138637763,9139618,6805524,3474,77.5955,2330620,118798659,2334094,9398177255,128,128,50,250,8,ON,16,26987,90,424304,1940.8583771717597,0.41438194887349383,0.000866872,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +11,TORUS,OFF,ON,4,589602,151255671,9255704,141999967,9255704,6999386,4591,77.1581,2251727,108231441,2256318,9618660111,128,128,50,250,8,ON,16,26987,90,424304,1940.8583771717597,0.4230359746765212,0.000589602,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,1139475,161651986,10307754,151344232,10307754,7401286,3071,71.4969,2903397,110695625,2906468,13593370848,128,128,50,250,8,ON,16,26987,181,424304,1934.7743318091223,0.3035607113411382,0.001139475,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,676864,154546164,9699996,144846168,9699996,7097903,3930,80.4769,2598163,107167477,2602093,9827064925,128,128,50,250,8,ON,16,26987,90,424304,1940.8583771717597,0.43246999093540417,0.000676864,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,6873535,181462202,11743446,169718756,11743446,8275710,48238,89.1038,3419498,133027048,3467736,1908156322,16,16,50,250,3,ON,16,26987,22,22217728,1558.755929482463,0.3220871684357119,0.006873535,19076.4,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,3601518,166578761,10731313,155847448,10731313,7637886,14865,82.3209,3078562,123180402,3093427,3527524996,32,32,50,250,6,ON,16,26987,45,6108864,1715.7150231353303,0.30437995807737067,0.003601518,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,1832683,161857298,10053504,151803794,10053504,7440887,27471,93.5547,2585146,135089079,2612617,2574185134,32,32,50,250,6,ON,16,26987,22,6108864,1716.095275970495,0.41964872038420636,0.001832683,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,2199254,167907824,10878515,157029309,10878515,7707894,6730,71.9372,3163891,122261017,3170621,7134439935,64,64,50,250,7,ON,16,26987,90,1588608,1790.2659621303628,0.3097861931944679,0.002199254,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,933969,159631775,9787891,149843884,9787891,7339847,10221,91.8591,2437823,130447689,2448044,5076217088,64,64,50,250,7,ON,16,26987,45,1588608,1791.7869734710223,0.4266746095775795,0.000933969,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,1109925,154652507,9777060,144875447,9777060,7112056,2927,71.3028,2662077,104002813,2665004,13061537296,128,128,50,250,8,ON,16,26987,181,424304,1934.7743318091223,0.2917354113832608,0.001109925,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,910658,145718366,8942732,136775634,8942732,6720978,2701,76.1915,2219053,115689325,2221754,9265999874,128,128,50,250,8,ON,16,26987,90,424304,1940.8583771717597,0.40875446428739826,0.000910658,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,6536769,176208808,11340218,164868590,11340218,8068974,45495,90.6725,3225749,129516240,3271244,1854954823,16,16,50,250,3,ON,16,26987,22,22217728,1558.755929482463,0.3126804026738806,0.006536769,19076.4,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,3626962,160741930,10284132,150457798,10284132,7397181,13838,79.689,2873113,118497298,2886951,3404661553,32,32,50,250,6,ON,16,26987,45,6108864,1715.7150231353303,0.29426478051130944,0.003626962,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,1925266,169812120,10569689,159242431,10569689,7778896,29207,94.2392,2761586,142503315,2790793,2700817370,32,32,50,250,6,ON,16,26987,22,6108864,1716.095275970495,0.4403004653674934,0.001925266,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,1927257,157704390,10123988,147580402,10123988,7238679,6256,75.1043,2879053,116298099,2885309,6690125624,64,64,50,250,7,ON,16,26987,90,1588608,1790.2659621303628,0.29004073815050074,0.001927257,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,1234334,163948789,10145825,153802964,10145825,7531924,9851,86.0508,2604050,131078200,2613901,5214207226,64,64,50,250,7,ON,16,26987,45,1588608,1791.7869734710223,0.43919634179681394,0.001234334,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +3,TORUS,OFF,ON,4,1937221,173622461,10871510,162750951,10871510,7943526,30639,94.1953,2897345,144578100,2927984,2761229601,32,32,50,250,6,ON,16,26987,22,6108864,1716.095275970495,0.4500491286711154,0.001937221,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +3,TORUS,OFF,ON,4,921259,159429345,9798702,149630643,9798702,7327703,10310,93.6672,2460689,130484632,2470999,5070145797,64,64,50,250,7,ON,16,26987,45,1588608,1791.7869734710223,0.42612545950557845,0.000921259,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,1668464,150684760,9795397,140889363,9795397,6952114,1654,68.6516,2841629,84542953,2843283,12638981190,128,128,50,250,8,ON,1,431800,181,424304,1934.7743318091223,0.28443326566254473,0.001668464,298.058,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,1513925,144851979,9384255,135467724,9384255,6700842,1656,69.1202,2681757,94577812,2683413,9209672930,128,128,50,250,8,ON,1,431800,90,424304,1940.8583771717597,0.40845479312427185,0.001513925,298.058,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,7091032,174527751,11257994,163269757,11257994,7991127,43866,85.7101,3223001,126119549,3266867,1838674613,16,16,50,250,3,ON,1,431800,22,22217728,1558.755929482463,0.31173000551685287,0.007091032,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,3814236,171622383,10635171,160987212,10635171,7863015,111154,93.8097,2661002,132079295,2772156,1365462162,16,16,50,250,3,ON,1,431800,11,22217728,1558.850992691254,0.41607178041098936,0.003814236,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,3508891,161847588,10427327,151420261,10427327,7421798,14768,81.9,2990761,118668636,3005529,3424112332,32,32,50,250,6,ON,1,431800,45,6108864,1715.7150231353303,0.29549906290199224,0.003508891,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,2070600,170635418,10515752,160119666,10515752,7789025,31673,92.0951,2695054,143469250,2726727,2713822388,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,0.4428591190934812,0.0020706,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,2195144,153640448,9898370,143742078,9898370,7069773,4657,77.1764,2823940,103430381,2828597,6465086458,64,64,50,250,7,ON,1,431800,90,1588608,1790.2659621303628,0.2814051826355546,0.002195144,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,2090606,149253441,9551100,139702341,9551100,6861545,4072,81.1438,2685483,111160986,2689555,4745416147,64,64,50,250,7,ON,1,431800,45,1588608,1791.7869734710223,0.40295733302361864,0.002090606,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,1626971,146217461,9460592,136756869,9460592,6774937,1678,67.6731,2683977,83357512,2685655,12322302232,128,128,50,250,8,ON,1,431800,181,424304,1934.7743318091223,0.2773052847099906,0.001626971,298.058,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,1374134,141960823,9213539,132747284,9213539,6578435,1964,64.4165,2633140,75526450,2635104,9021867924,128,128,50,250,8,ON,1,431800,90,424304,1940.8583771717597,0.399735284678749,0.001374134,298.058,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,7021606,178787318,11577366,167209952,11577366,8157791,45538,88.0643,3374037,129481560,3419575,1881897263,16,16,50,250,3,ON,1,431800,22,22217728,1558.755929482463,0.3183660661413703,0.007021606,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,3751626,172606700,10695508,161911192,10695508,7902547,110640,95.5346,2682321,136478833,2792961,1373698971,16,16,50,250,3,ON,1,431800,11,22217728,1558.850992691254,0.41833030817063943,0.003751626,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,4072554,162699036,10629166,152069870,10629166,7470520,12932,77.3574,3145714,113540560,3158646,3418505850,32,32,50,250,6,ON,1,431800,45,6108864,1715.7150231353303,0.2968565124280636,0.004072554,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,1918344,164186447,10190552,153995895,10190552,7542053,30616,93.4006,2617883,138322590,2648499,2611582137,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,0.42593561324657864,0.001918344,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,2228901,155337644,10029574,145308070,10029574,7144933,4503,76.7842,2880138,100099544,2884641,6491579558,64,64,50,250,7,ON,1,431800,90,1588608,1790.2659621303628,0.2826449527896488,0.002228901,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,1481831,144472783,9231628,135241155,9231628,6691801,1522,72.5805,2538305,98807531,2539827,9184032899,128,128,50,250,8,ON,1,431800,90,424304,1940.8583771717597,0.4072171774300621,0.001481831,298.058,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,6697988,177411600,11519799,165891801,11519799,8115092,46602,89.6641,3358105,129642161,3404707,1867699136,16,16,50,250,3,ON,1,431800,22,22217728,1558.755929482463,0.31517027214734283,0.006697988,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,3912196,175877168,10900618,164976550,10900618,8050483,111553,93.4244,2738582,137289286,2850135,1399499020,16,16,50,250,3,ON,1,431800,11,22217728,1558.850992691254,0.4264515864498458,0.003912196,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,4135905,165065406,10599278,154466128,10599278,7560303,13687,76.0982,3025288,118295281,3038975,3491429390,32,32,50,250,6,ON,1,431800,45,6108864,1715.7150231353303,0.3031087840685351,0.004135905,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,1891505,166137155,10324676,155812479,10324676,7638091,30619,93.9593,2655966,138183129,2686585,2642335378,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,0.43079195364654427,0.001891505,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,2292689,155841614,10014427,145827187,10014427,7158766,4402,76.2949,2851259,101345358,2855661,6527760963,64,64,50,250,7,ON,1,431800,90,1588608,1790.2659621303628,0.2843913043461925,0.002292689,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,1505725,147956265,9359395,138596870,9359395,6834055,6898,80.4488,2518442,97544003,2525340,4705392453,64,64,50,250,7,ON,1,431800,45,1588608,1791.7869734710223,0.39765445170231606,0.001505725,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +3,TORUS,OFF,ON,4,1616831,142281907,9187987,133093920,9187987,6581284,1295,76.1679,2605408,103141443,2606703,9045392752,128,128,50,250,8,ON,1,431800,90,424304,1940.8583771717597,0.4016345511533775,0.001616831,298.058,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +3,TORUS,OFF,ON,4,2806670,156478561,10068598,146409963,10068598,7209421,14689,83.9953,2844488,103378730,2859177,2488693873,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,0.409052034377,0.00280667,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +3,TORUS,OFF,ON,4,1997861,148570698,9314526,139256172,9314526,6848406,4464,80.742,2461656,113436992,2466120,4724042418,64,64,50,250,7,ON,1,431800,45,1588608,1791.7869734710223,0.40086182253364794,0.001997861,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,1122137,154586661,9845036,144741625,9845036,7121567,2597,75.7169,2720872,99598137,2723469,12975694186,128,128,50,250,8,ON,4,107950,181,424304,1934.7743318091223,0.2898913644123164,0.001122137,298.059,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,989002,140998837,8842473,132156364,8842473,6514731,1880,81.836,2325862,101180329,2327742,8961742191,128,128,50,250,8,ON,4,107950,90,424304,1940.8583771717597,0.3957218070960237,0.000989002,298.059,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,6855409,177596002,11490281,166105721,11490281,8113404,44511,89.6181,3332366,129620129,3376877,1866156948,16,16,50,250,3,ON,4,107950,22,22217728,1558.755929482463,0.3153889074768839,0.006855409,19075.8,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,3786142,167459203,10968719,156490484,10968719,7670635,15538,80.9577,3282546,122506143,3298084,3545784241,32,32,50,250,6,ON,4,107950,45,6108864,1715.7150231353303,0.3064918752972319,0.003786142,4768.95,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,MESH,OFF,ON,4,2086048,151728404,9597526,142130878,9597526,7016703,5163,71.5625,2575660,105029991,2580823,6417394682,64,64,50,250,7,ON,4,107950,90,1588608,1790.2659621303628,0.2790142346085688,0.002086048,1192.24,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,1093830,154906349,9558856,145347493,9558856,7139061,10228,83.029,2409567,123701026,2419795,4926155899,64,64,50,250,7,ON,4,107950,45,1588608,1791.7869734710223,0.41469081333690194,0.00109383,1192.24,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,1100168,150738784,9579203,141159581,9579203,6972541,2463,76.3043,2604199,95880710,2606662,12630111972,128,128,50,250,8,ON,4,107950,181,424304,1934.7743318091223,0.2821998247191642,0.001100168,298.059,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,801463,147500767,9076587,138424180,9076587,6792472,3553,75.7719,2280562,107328185,2284115,9379569136,128,128,50,250,8,ON,4,107950,90,424304,1940.8583771717597,0.41333296452081403,0.000801463,298.059,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,6701570,172919965,11107656,161812309,11107656,7896755,44543,87.2182,3166358,124837496,3210901,1818317054,16,16,50,250,3,ON,4,107950,22,22217728,1558.755929482463,0.30736724224656764,0.00670157,19075.8,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,4042947,165116056,10604888,154511168,10604888,7563070,13517,76.409,3028301,119486874,3041818,3493738709,32,32,50,250,6,ON,4,107950,45,6108864,1715.7150231353303,0.3030003608484621,0.004042947,4768.95,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,MESH,OFF,ON,4,2156853,153502374,9710628,143791746,9710628,7085425,5040,72.5926,2620163,105469923,2625203,6473326815,64,64,50,250,7,ON,4,107950,90,1588608,1790.2659621303628,0.2816240861838333,0.002156853,1192.24,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,1312766,154206371,9621499,144584872,9621499,7094947,8828,79.9654,2517724,112629713,2526552,4904322465,64,64,50,250,7,ON,4,107950,45,1588608,1791.7869734710223,0.41360428821110956,0.001312766,1192.24,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,1110488,147757750,9427101,138330649,9427101,6837053,2309,77.2387,2587739,93432288,2590048,12384261947,128,128,50,250,8,ON,4,107950,181,424304,1934.7743318091223,0.2768204989679548,0.001110488,298.059,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,979906,143539925,9161665,134378260,9161665,6611646,1942,83.6404,2548077,100383859,2550019,9126119798,128,128,50,250,8,ON,4,107950,90,424304,1940.8583771717597,0.40288312771224144,0.000979906,298.059,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,6569743,175150585,11185980,163964605,11185980,8003928,44373,90.622,3137679,127549410,3182052,1842431890,16,16,50,250,3,ON,4,107950,22,22217728,1558.755929482463,0.3107956817298198,0.006569743,19075.8,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,3805449,169745173,10900236,158844937,10900236,7756197,14744,81.1207,3129295,124347166,3144039,3598189147,32,32,50,250,6,ON,4,107950,45,6108864,1715.7150231353303,0.3109018286068028,0.003805449,4768.95,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,MESH,OFF,ON,4,2210782,159215399,10143097,149072302,10143097,7314959,5630,71.7347,2822508,112488776,2828138,6712415653,64,64,50,250,7,ON,4,107950,90,1588608,1790.2659621303628,0.29193982384817585,0.002210782,1192.24,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,1261618,153176828,9462854,143713974,9462854,7038509,9235,74.7117,2415110,116725564,2424345,4870685552,64,64,50,250,7,ON,4,107950,45,1588608,1791.7869734710223,0.4106257568528415,0.001261618,1192.24,4883401,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY diff --git a/Papers/ICPP_2024/Runs/wk_pagerank/experiment_5.zsh b/Papers/ICPP_2024/Runs/wk_pagerank/experiment_5.zsh new file mode 100755 index 0000000..24f2ae7 --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_pagerank/experiment_5.zsh @@ -0,0 +1,146 @@ +#!/bin/zsh + +# export OMP_NUM_THREADS=32 + +# Define possible values for each variable +TRAIL_VALUES=("0" "1" "2") +THROTTLE_VALUES=("true") +RECVBUFFSIZE_VALUES=("4") +TERMINATION_VALUES=("false") + +NETWORK="1" # TORUS +# NETWORK="0" # MESH + +# Function to calculate Pythagorean theorem +pythagorean() { + if [[ $# -ne 3 ]]; then + echo "Usage: $0 " + exit 1 + fi + + local side1=$1 + local side2=$2 + local netowork_type=$3 + + # Calculate the hypotenuse + local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) + + # Check if divide_flag is 1, then divide the hypotenuse by 2 + if [[ $netowork_type -eq 1 ]]; then + hypotenuse=$(echo "$hypotenuse / 2" | bc -l) + fi + + # Round up to the nearest integer using ceiling + local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) + + # Return the result + echo "$hypotenuse" +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -r) + REPO_PATH="$2" + shift 2 + ;; + -d) + DATASET_PATH="$2" + shift 2 + ;; + -cc) + CC_EXE="$2" + shift 2 + ;; + -cxx) + CXX_EXE="$2" + shift 2 + ;; + -chip_dim) + CHIP_SIZE_X="$2" + CHIP_SIZE_Y="$2" + shift 2 + ;; + -vicinity) + VICINITY_VAL="$2" + shift 2 + ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; + -maxedge) + MAX_EDGE="$2" + shift 2 + ;; + -memory_cc) + MEMORY_CC="$2" + shift 2 + ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; + -script) + SCRIPT_TO_RUN="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +AAP_PATH="$REPO_PATH/Applications/Page_Rank_Fixed_Iterations_Rhizome" +# Create a function to run cmake with the given parameters +run_cmake() { + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_R${5}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE=32768 \ + -D DIFFUSE_QUEUE_SIZE=32768 \ + -D WEIGHT="$7" + cmake --build build_${8}_R${5}_${9} -j 8 +} + + +# Nested loops to iterate through all combinations +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do + for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do + for TERMINATION in "${TERMINATION_VALUES[@]}"; do + ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) + # Run cmake with the current combination of values + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "false" "$CHIP_SIZE_X" "$TRAIL" + # Run the experiment + "$REPO_PATH/wk_pagerank/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -rhizomes "$RHIZOMES" \ + -trail "$TRAIL" + done + done + done +done + diff --git a/Papers/ICPP_2024/Runs/wk_pagerank/job_cca_wikipedia.sh b/Papers/ICPP_2024/Runs/wk_pagerank/job_cca_wikipedia.sh new file mode 100644 index 0000000..ae57fdd --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_pagerank/job_cca_wikipedia.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J pr-wiki-cca +#SBATCH -p general +#SBATCH -o wikipedia_%j.txt +#SBATCH -e wikipedia_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=03:10:00 +#SBATCH --mem=170G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +#CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("64") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=22217728 +VICINITY[16]=3 +MAX_EDGES[16]=300 + +MEMORY_CC[32]=6108864 +VICINITY[32]=6 +MAX_EDGES[32]=100 + +MEMORY_CC[64]=1588608 +VICINITY[64]=7 +MAX_EDGES[64]=70 + +MEMORY_CC[128]=424304 +VICINITY[128]=8 +#VICINITY[128]=128 +MAX_EDGES[128]=85 + +MIN_EDGES=50 + +declare -A RHIZOME_CUTOFF + +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +RHIZOMES=("16" "1") +#RHIZOMES=("$2") + +for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + #max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=250 + #vicinity=2 + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -script run_pagerank_wikipedia.zsh + done +done + diff --git a/Papers/ICPP_2024/Runs/wk_pagerank/run_pagerank_wikipedia.zsh b/Papers/ICPP_2024/Runs/wk_pagerank/run_pagerank_wikipedia.zsh new file mode 100755 index 0000000..9e8fc5a --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_pagerank/run_pagerank_wikipedia.zsh @@ -0,0 +1,66 @@ +#!/bin/zsh + +# Define other command-line arguments +GRAPH_TYPE="Wikipedia" +OUTPUT_DIR="." +SHAPE="square" +ROOT_NODE="0" +MEMORY_CC="22528" +HX="128" +HY="128" +HDEPTH="0" +HB="0" +ROUTE="0" +NETWORK="0" # 0: Mesh, 1: Torus +VERIFY="" # "-verify" + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -hx) + HX="$2" + shift 2 + ;; + -hy) + HY="$2" + shift 2 + ;; + -m) + MEMORY_CC="$2" + shift 2 + ;; + -dataset) + DATASET_PATH="$2" + shift 2 + ;; + -network) + NETWORK="$2" + shift 2 + ;; + -rhizomes) + RHIZOME="$2" + shift 2 + ;; + -trail) + TRAIL="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done + +INPUT_FILE="$DATASET_PATH/muchiSim/wikipedia.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_R${RHIZOME}_${TRAIL}/PageRank_Fixed_Iterations_Rhizome_CCASimulator" + +# Run the command +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -iter 1 -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/wk_pagerank/wk_pagerank.csv b/Papers/ICPP_2024/Runs/wk_pagerank/wk_pagerank.csv new file mode 100644 index 0000000..1cdc211 --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_pagerank/wk_pagerank.csv @@ -0,0 +1,20 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,581657,105631413,105631413,0,8513827,8513827,0,73.0005,0,66990518,0,6460888811,128,128,50,250,8,ON,16,26987,90,424304,1940.8583771717597,0.28528533201757655,0.000581657,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,2723506,105631413,105631413,0,8513827,8513827,0,81.8736,0,76841671,0,1615962089,32,32,50,250,6,ON,16,26987,22,6108864,1716.095275970495,0.26897685545635847,0.002723506,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,1219489,105631413,105631413,0,8513827,8513827,0,77.0429,0,72042116,0,3230759463,64,64,50,250,7,ON,16,26987,45,1588608,1791.7869734710223,0.2741197925776843,0.001219489,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,634446,105631413,105631413,0,8513827,8513827,0,74.2254,0,72696439,0,6461386426,128,128,50,250,8,ON,16,26987,90,424304,1940.8583771717597,0.2854963512970358,0.000634446,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,2713010,105631413,105631413,0,8513827,8513827,0,81.6968,0,77238046,0,1616041542,32,32,50,250,6,ON,16,26987,22,6108864,1716.095275970495,0.2689557469862164,0.00271301,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,1148065,105631413,105631413,0,8513827,8513827,0,79.8626,0,72507875,0,3230807371,64,64,50,250,7,ON,16,26987,45,1588608,1791.7869734710223,0.27388409079036724,0.001148065,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,631459,105631413,105631413,0,8513827,8513827,0,74.352,0,76405471,0,6461066057,128,128,50,250,8,ON,16,26987,90,424304,1940.8583771717597,0.28547163815325305,0.000631459,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,2866811,105631413,105631413,0,8513827,8513827,0,79.9642,0,74755496,0,1615909585,32,32,50,250,6,ON,16,26987,22,6108864,1716.095275970495,0.2694307641248319,0.002866811,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,1260129,105631413,105631413,0,8513827,8513827,0,75.1242,0,70844625,0,3231310451,64,64,50,250,7,ON,16,26987,45,1588608,1791.7869734710223,0.2743020950047542,0.001260129,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,1760271,105631370,105631370,0,8513636,8513636,0,55.127,0,53834950,0,6460840214,128,128,50,250,8,ON,1,431800,90,424304,1940.8583771717597,0.2895089733365037,0.001760271,298.058,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,6795222,105631370,105631370,0,8513636,8513636,0,85.1723,0,76450317,0,808462916,16,16,50,250,3,ON,1,431800,11,22217728,1558.850992691254,0.2601210850345877,0.006795222,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,3180809,105631370,105631370,0,8513636,8513636,0,76.3318,0,65844719,0,1616029164,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,0.2704629933116355,0.003180809,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,2020771,105631370,105631370,0,8513636,8513636,0,63.9456,0,56053865,0,3231212512,64,64,50,250,7,ON,1,431800,45,1588608,1791.7869734710223,0.27684659747254287,0.002020771,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,6684419,105631370,105631370,0,8513636,8513636,0,85.9097,0,76457040,0,808509636,16,16,50,250,3,ON,1,431800,11,22217728,1558.850992691254,0.25980988629615565,0.006684419,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,3645212,105631370,105631370,0,8513636,8513636,0,77.7117,0,76584709,0,1615939624,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,0.27194689721165016,0.003645212,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,1961385,105631370,105631370,0,8513636,8513636,0,66.8093,0,55370925,0,3231083580,64,64,50,250,7,ON,1,431800,45,1588608,1791.7869734710223,0.27663655724771413,0.001961385,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,6592299,105631370,105631370,0,8513636,8513636,0,86.6208,0,76500145,0,808530830,16,16,50,250,3,ON,1,431800,11,22217728,1558.850992691254,0.25954593422616967,0.006592299,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,3150089,105631370,105631370,0,8513636,8513636,0,76.6869,0,65482577,0,1616010881,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,0.2703609482253751,0.003150089,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,2100095,105631370,105631370,0,8513636,8513636,0,77.5894,0,68922643,0,3231208754,64,64,50,250,7,ON,1,431800,45,1588608,1791.7869734710223,0.2771124904354019,0.002100095,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY diff --git a/Papers/ICS_2024/Runs/Page_Rank/Experiment_5_Scaling/experiment_5.zsh b/Papers/ICPP_2024/Runs/wk_sssp/experiment_5.zsh similarity index 62% rename from Papers/ICS_2024/Runs/Page_Rank/Experiment_5_Scaling/experiment_5.zsh rename to Papers/ICPP_2024/Runs/wk_sssp/experiment_5.zsh index be68d2c..5e5b9e2 100755 --- a/Papers/ICS_2024/Runs/Page_Rank/Experiment_5_Scaling/experiment_5.zsh +++ b/Papers/ICPP_2024/Runs/wk_sssp/experiment_5.zsh @@ -3,6 +3,7 @@ # export OMP_NUM_THREADS=32 # Define possible values for each variable +TRAIL_VALUES=("0" "1" "2") THROTTLE_VALUES=("true") RECVBUFFSIZE_VALUES=("4") TERMINATION_VALUES=("false") @@ -36,9 +37,6 @@ pythagorean() { echo "$hypotenuse" } -# REPO_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator" -# DATASET_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator/Papers/IPDPS_2024/Datasets" - # Parse command line arguments while [[ $# -gt 0 ]]; do case "$1" in @@ -67,6 +65,10 @@ while [[ $# -gt 0 ]]; do VICINITY_VAL="$2" shift 2 ;; + -minedge) + MIN_EDGE="$2" + shift 2 + ;; -maxedge) MAX_EDGE="$2" shift 2 @@ -75,6 +77,14 @@ while [[ $# -gt 0 ]]; do MEMORY_CC="$2" shift 2 ;; + -rhizomes) + RHIZOMES="$2" + shift 2 + ;; + -cutoff) + CUTOFF="$2" + shift 2 + ;; -script) SCRIPT_TO_RUN="$2" shift 2 @@ -86,23 +96,50 @@ while [[ $# -gt 0 ]]; do esac done -AAP_PATH="$REPO_PATH/Applications/Page_Rank_Nested_Fixed_Iterations" +AAP_PATH="$REPO_PATH/Applications/Single_Source_Shortest_Path_Rhizome" # Create a function to run cmake with the given parameters run_cmake() { - CC="$CC_EXE" CXX="$CXX_EXE" cmake -S "$AAP_PATH" -B build -D ANIMATION=false -D VICINITY="$VICINITY_VAL" -D MAXEDGESPERVERTEX="$MAX_EDGE" -D THROTTLE="$1" -D RECVBUFFSIZE="$2" -D TERMINATION="$3" -D THROTTLE_CONGESTION_THRESHOLD="$4" -D NESTEDITERATIONS="$5" - cmake --build build -j 6 + CC="$CC_EXE" \ + CXX="$CXX_EXE" \ + cmake -S "$AAP_PATH" -B build_${8}_${9} \ + -D ACTIVE_PERCENT=false \ + -D ANIMATION=false \ + -D VICINITY="$VICINITY_VAL" \ + -D MIN_EDGES_PER_VERTEX="$MIN_EDGE" \ + -D MAXEDGESPERVERTEX="$MAX_EDGE" \ + -D GHOST_CHILDREN=3 \ + -D THROTTLE="$1" \ + -D RECVBUFFSIZE="$2" \ + -D TERMINATION="$3" \ + -D THROTTLE_CONGESTION_THRESHOLD="$4" \ + -D RHIZOME_SIZE="$5" \ + -D RHIZOME_INDEGREE_CUTOFF="$6" \ + -D SPLIT_QUEUES=true \ + -D ACTIONQUEUESIZE=32768 \ + -D DIFFUSE_QUEUE_SIZE=32768 \ + -D WEIGHT="$7" + cmake --build build_${8}_${9} -j 8 } + # Nested loops to iterate through all combinations -for THROTTLE in "${THROTTLE_VALUES[@]}"; do +for TRAIL in "${TRAIL_VALUES[@]}"; do + for THROTTLE in "${THROTTLE_VALUES[@]}"; do for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do for TERMINATION in "${TERMINATION_VALUES[@]}"; do ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_Y $NETWORK) # Run cmake with the current combination of values - run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" 1 + run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" "$RHIZOMES" "$CUTOFF" "true" "$CHIP_SIZE_X" "$TRAIL" # Run the experiment - "$REPO_PATH/Papers/ICS_2024/Runs/Page_Rank/$SCRIPT_TO_RUN" -hx "$CHIP_SIZE_X" -hy "$CHIP_SIZE_Y" -dataset "$DATASET_PATH" -network "$NETWORK" -m "$MEMORY_CC" -iter 12 + "$REPO_PATH/wk_sssp/$SCRIPT_TO_RUN" \ + -hx "$CHIP_SIZE_X" \ + -hy "$CHIP_SIZE_Y" \ + -dataset "$DATASET_PATH" \ + -network "$NETWORK" \ + -m "$MEMORY_CC" \ + -trail "$TRAIL" done done + done done diff --git a/Papers/ICPP_2024/Runs/wk_sssp/job_cca_wikipedia.sh b/Papers/ICPP_2024/Runs/wk_sssp/job_cca_wikipedia.sh new file mode 100644 index 0000000..bb866a8 --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_sssp/job_cca_wikipedia.sh @@ -0,0 +1,88 @@ +#!/bin/bash + +#SBATCH -A YourAccount +#SBATCH -J sssp-wiki-cca +#SBATCH -p general +#SBATCH -o wikipedia_%j.txt +#SBATCH -e wikipedia_%j.err +#SBATCH --mail-type=ALL +#SBATCH --mail-user=YourEmail +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=128 +#SBATCH --time=04:15:00 +#SBATCH --mem=170G + +#Load any modules that your program needs +#module load modulename + +repository=PATH-TO/CCA-Simulator +dataset=PATH-TO/Datasets + +#change directory to: +cd ${repository}/Papers/ICPP_2024/Runs/ + +# Script to execute +exe=experiment_5.zsh + +#Define the list of number of processes +threads=128 +export OMP_NUM_THREADS=${threads} + +#CHIP_DIM_VALUES=("16" "32" "64" "128") +#CHIP_DIM_VALUES=("64") +CHIP_DIM_VALUES=("$1") + +declare -A MEMORY_CC +declare -A VICINITY +declare -A MAX_EDGES + +MEMORY_CC[16]=32435456 +VICINITY[16]=3 +MAX_EDGES[16]=300 + +MEMORY_CC[32]=8108864 +VICINITY[32]=6 +MAX_EDGES[32]=100 + +MEMORY_CC[64]=3610380 #1388608 +VICINITY[64]=7 +MAX_EDGES[64]=70 + +MEMORY_CC[128]=1103190 #424304 +VICINITY[128]=8 +#VICINITY[128]=128 +MAX_EDGES[128]=85 + +MIN_EDGES=50 + +declare -A RHIZOME_CUTOFF + +RHIZOME_CUTOFF[1]=431800 + +RHIZOME_CUTOFF[2]=215900 + +RHIZOME_CUTOFF[4]=107950 + +RHIZOME_CUTOFF[8]=53975 + +RHIZOME_CUTOFF[16]=26987 + +# RHIZOMES=("16" "1" "2" "4" "8") +RHIZOMES=("$2") + +for CHIP_DIM in "${CHIP_DIM_VALUES[@]}"; do + memory=${MEMORY_CC[$CHIP_DIM]} + vicinity=${VICINITY[$CHIP_DIM]} + #max_edges=${MAX_EDGES[$CHIP_DIM]} + max_edges=250 + + for RHIZOME in "${RHIZOMES[@]}"; do + CUTOFF=${RHIZOME_CUTOFF[$RHIZOME]} + srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} \ + -cc cc -cxx c++ -vicinity ${vicinity} \ + -minedge ${MIN_EDGES} -maxedge ${max_edges} \ + -chip_dim ${CHIP_DIM} \ + -memory_cc ${memory} -rhizomes ${RHIZOME} -cutoff ${CUTOFF} -script run_sssp_wikipedia.zsh + done +done + diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_wikipedia.zsh b/Papers/ICPP_2024/Runs/wk_sssp/run_sssp_wikipedia.zsh similarity index 67% rename from Papers/ICS_2024/Runs/BFS/run_bfs_wikipedia.zsh rename to Papers/ICPP_2024/Runs/wk_sssp/run_sssp_wikipedia.zsh index a4bbba0..06911bf 100755 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_wikipedia.zsh +++ b/Papers/ICPP_2024/Runs/wk_sssp/run_sssp_wikipedia.zsh @@ -1,9 +1,5 @@ #!/bin/zsh -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# to be invoked wih: -vicinity 5 -maxedge 129 # Define other command-line arguments GRAPH_TYPE="Wikipedia" @@ -42,6 +38,10 @@ while [[ $# -gt 0 ]]; do NETWORK="$2" shift 2 ;; + -trail) + TRAIL="$2" + shift 2 + ;; *) echo "Unknown argument: $1" exit 1 @@ -50,5 +50,14 @@ while [[ $# -gt 0 ]]; do done INPUT_FILE="$DATASET_PATH/muchiSim/wikipedia.edgelist" +# Define the path to the executable +EXECUTABLE="./build_${HX}_${TRAIL}/SSSP_Rhizome_CCASimulator" + # Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY +$EXECUTABLE -f $INPUT_FILE \ + -g $GRAPH_TYPE \ + -od $OUTPUT_DIR \ + -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC \ + -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB \ + -route $ROUTE -mesh $NETWORK \ + -shuffle $VERIFY -trail $TRAIL diff --git a/Papers/ICPP_2024/Runs/wk_sssp/wk_sssp.csv b/Papers/ICPP_2024/Runs/wk_sssp/wk_sssp.csv new file mode 100644 index 0000000..7f3a4ca --- /dev/null +++ b/Papers/ICPP_2024/Runs/wk_sssp/wk_sssp.csv @@ -0,0 +1,18 @@ +trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +0,TORUS,OFF,ON,4,2726385,726624534,50226917,676397617,50226917,31735747,19671,93.73,18471499,516958922,18491170,46140579006,128,128,50,250,8,ON,16,26987,90,1103190,4988.219534432034,3.261078052968207,0.002726385,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,6993166,672610026,43843940,628766086,43843940,29543578,142468,97.4759,14157894,589065323,14300362,10693533333,32,32,50,250,6,ON,16,26987,22,8108864,2277.1911663814544,2.0094902631087397,0.006993166,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,3154129,618928137,41333742,577594395,41333742,27205625,60440,96.9683,14067677,522695571,14128117,19674606291,64,64,50,250,7,ON,16,26987,45,3610380,4060.6028945669127,2.4943052361637057,0.003154129,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,2660980,699231881,47663849,651568032,47663849,30440805,17136,93.3719,17205908,501381195,17223044,44425762196,128,128,50,250,8,ON,16,26987,90,1103190,4988.219534432034,3.140210488753837,0.00266098,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,6944587,660393133,43781696,616611437,43781696,29010536,146944,97.4453,14624216,577576393,14771160,10498677118,32,32,50,250,6,ON,16,26987,22,8108864,2277.1911663814544,1.973214731251749,0.006944587,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,3167295,618427468,41086184,577341284,41086184,27209453,59073,96.5812,13817658,502596484,13876731,19659683335,64,64,50,250,7,ON,16,26987,45,3610380,4060.6028945669127,2.4925309212859665,0.003167295,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,2821984,602029052,43450540,558578512,43450540,26259885,13201,93.7014,17177454,472469554,17190655,38254286367,128,128,50,250,8,ON,16,26987,90,1103190,4988.219534432034,2.708940681403813,0.002821984,298.069,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,6925040,668642568,44256405,624386163,44256405,29393863,148294,97.9497,14714248,585865039,14862542,10629948336,32,32,50,250,6,ON,16,26987,22,8108864,2277.1911663814544,1.9974310881026902,0.00692504,4769.11,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,3327538,643778030,42675334,601102696,42675334,28269229,60278,96.1531,14345827,532212370,14406105,20462869661,64,64,50,250,7,ON,16,26987,45,3610380,4060.6028945669127,2.5945970893771113,0.003327538,1192.28,4883564,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,7641800,840631328,65311770,775319558,65311770,36806673,10771,71.9128,28494326,413710406,28505097,53374548087,128,128,50,250,8,ON,1,431800,90,1103190,4988.219534432034,3.81422311975726,0.0076418,298.058,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,13911424,669695212,43667016,626028196,43667016,29488808,539040,97.4394,13639168,541323654,14178208,5326963039,16,16,50,250,3,ON,1,431800,11,32435456,2275.4916414583777,1.9675222947692794,0.013911424,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,7653570,659247850,43809050,615438800,43809050,28957099,139813,95.3158,14712138,539426473,14851951,10479464672,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,1.7090188765319845,0.00765357,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +0,TORUS,OFF,ON,4,7152350,753948045,53622634,700325411,53622634,33196604,32999,85.2012,20393031,450674544,20426030,23965900394,64,64,50,250,7,ON,1,431800,45,3610380,4060.6028945669127,3.0636086182410236,0.00715235,1192.23,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,14491838,668026714,43830212,624196502,43830212,29388937,533748,96.8351,13907527,536986292,14441275,5313333171,16,16,50,250,3,ON,1,431800,11,32435456,2275.4916414583777,1.965127518318086,0.014491838,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +1,TORUS,OFF,ON,4,7576145,680758421,44813381,635945040,44813381,29824426,147717,95.7613,14841238,567654824,14988955,10822464715,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,1.7638960921950495,0.007576145,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,14758560,703015615,45991004,657024611,45991004,30942794,560237,96.905,14487973,570082607,15048210,5591891071,16,16,50,250,3,ON,1,431800,11,32435456,2275.4916414583777,2.0660395790688297,0.01475856,19075.7,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY +2,TORUS,OFF,ON,4,8998906,704468002,47705749,656762253,47705749,30900330,108556,94.1572,16696863,517279494,16805419,11191686525,32,32,50,250,6,ON,1,431800,22,6108864,1716.095275970495,1.8278375067106825,0.008998906,4768.93,4883389,4206289,101311613,PATH-TO/Datasets/muchiSim/wikipedia.edgelist,XY diff --git a/Papers/ICPP_2024/Scripts/query_csv_lazy_diffuse.py b/Papers/ICPP_2024/Scripts/query_csv_lazy_diffuse.py new file mode 100644 index 0000000..4bb4018 --- /dev/null +++ b/Papers/ICPP_2024/Scripts/query_csv_lazy_diffuse.py @@ -0,0 +1,67 @@ +import pandas as pd +import sys +import os + +# Check if the command line argument for the CSV file is provided +if len(sys.argv) != 2: + print("Usage: python script.py ") + sys.exit(1) + +# Get the CSV file name from the command line argument +csv_file = sys.argv[1] + +# Read the CSV file into a Pandas DataFrame +try: + df = pd.read_csv(csv_file) +except FileNotFoundError: + print(f"File not found: {csv_file}") + sys.exit(1) + + +# df['network'] = df['network'].apply(str) + +""" print(df["dim_x"].unique()) +print(df["dim_x"].dtype) """ +# print(df["network"].dtype) +# print(df) + +network = "TORUS" +chips = df["dim_x"].unique() +#chip = [32, 64, 128] +for dim_x in chips: + #network = "MESH" + #dim_x = 32 + + rpvo_max = 1 + if dim_x == 128 or dim_x == 64: + rpvo_max = 1 + # Filter rows based on conditions + filtered_df = df[ + (df["dim_x"] == dim_x) & (df["network"] == network) & (df["rpvo_max"] == rpvo_max) + ] + + # print(filtered_df) + + min_index = filtered_df["total_cycles"].idxmin() + min_row = df.loc[min_index] + + # print(min_row) + + total_cycles_value = min_row.total_cycles + + actions_created_value = min_row.actions_created + actions_performed_value = min_row.actions_performed + diffusions_created_value = min_row.diffusions_created + diffusions_performed_value = min_row.diffusions_performed + actions_overlaped_value = min_row.actions_overlaped + diffusions_pruned_value = min_row.diffusions_pruned + + actions_overlaped_percent = 100 * actions_overlaped_value / actions_created_value + diffusions_pruned_percent = 100 * diffusions_pruned_value / diffusions_created_value + actions_performed_percent = 100 * actions_performed_value / actions_created_value + + print(f"dim_x: {dim_x}") + print(f"total_cycles_value: {total_cycles_value}") + print(f"actions_performed_percent: {actions_performed_percent:.2f}") + print(f"actions_overlaped_percent: {actions_overlaped_percent:.2f}") + print(f"diffusions_pruned_percent: {diffusions_pruned_percent:.2f}") diff --git a/Papers/ICPP_2024/Scripts/query_csv_mesh_vs_torus.py b/Papers/ICPP_2024/Scripts/query_csv_mesh_vs_torus.py new file mode 100644 index 0000000..e62e7c9 --- /dev/null +++ b/Papers/ICPP_2024/Scripts/query_csv_mesh_vs_torus.py @@ -0,0 +1,75 @@ +import pandas as pd +import sys +import os + +# Check if the command line argument for the CSV file is provided +if len(sys.argv) != 2: + print("Usage: python script.py ") + sys.exit(1) + +# Get the CSV file name from the command line argument +csv_file = sys.argv[1] + +# Read the CSV file into a Pandas DataFrame +try: + df = pd.read_csv(csv_file) +except FileNotFoundError: + print(f"File not found: {csv_file}") + sys.exit(1) + +chips = df["dim_x"].unique() +print(f"chips: {chips}") +#chips = [64] +for dim_x in chips: + + rpvo_max = 1 + if dim_x == 128 or dim_x == 64: + rpvo_max = 16 + + # Filter rows based o base case of MESH conditions + filtered_df = df[ + (df["dim_x"] == dim_x) & (df["network"] == "MESH") & (df["rpvo_max"] == rpvo_max) + ] + + """ print("printing for MESH") + print(filtered_df) """ + + + min_index = filtered_df["total_cycles"].idxmin() + min_row = df.loc[min_index] + + total_cycles_MESH_value = min_row.total_cycles + total_totE_MESH_value = min_row.totE + + # Filter rows based on TORUS conditions + filtered_df = df[ + (df["dim_x"] == dim_x) & (df["network"] == "TORUS") & (df["rpvo_max"] == rpvo_max) + ] + + """ print("printing for TORUS") + print(filtered_df) """ + + min_index = filtered_df["total_cycles"].idxmin() + min_row = df.loc[min_index] + + total_cycles_TORUS_value = min_row.total_cycles + total_totE_TORUS_value = min_row.totE + + speedup_of_torus = total_cycles_MESH_value / total_cycles_TORUS_value + energy_increase_of_torus = total_totE_TORUS_value / total_totE_MESH_value + + time_decrease_percent = 100 * ( + (total_cycles_MESH_value - total_cycles_TORUS_value) / total_cycles_MESH_value + ) + energy_increase_percent = 100 * ( + (total_totE_TORUS_value - total_totE_MESH_value) / total_totE_TORUS_value + ) + + print(f"dim_x: {dim_x}") + #print(f"total_cycles_MESH_value: {total_cycles_MESH_value}") + #print(f"total_cycles_TORUS_value: {total_cycles_TORUS_value}") + #print(f"speedup_of_torus: {speedup_of_torus:.2f}") + #print(f"energy_increase_of_torus: {energy_increase_of_torus:.2f}") + print(f"time_decrease_percent: {time_decrease_percent:.2f}") + print(f"energy_increase_percent: {energy_increase_percent:.2f}") + diff --git a/Papers/ICPP_2024/Scripts/query_csv_rhizome_perf.py b/Papers/ICPP_2024/Scripts/query_csv_rhizome_perf.py new file mode 100644 index 0000000..1ed95b8 --- /dev/null +++ b/Papers/ICPP_2024/Scripts/query_csv_rhizome_perf.py @@ -0,0 +1,60 @@ +import pandas as pd +import sys +import os + +# Check if the command line argument for the CSV file is provided +if len(sys.argv) != 2: + print("Usage: python script.py ") + sys.exit(1) + +# Get the CSV file name from the command line argument +csv_file = sys.argv[1] + +# Read the CSV file into a Pandas DataFrame +try: + df = pd.read_csv(csv_file) +except FileNotFoundError: + print(f"File not found: {csv_file}") + sys.exit(1) + +network = "TORUS" +chips = df["dim_x"].unique() + +dim_x=128 +print(f"dim_x: {dim_x}") + + +# Filter rows based on base of rpvo_max=1 for rhizome performance +filtered_df = df[ + (df["dim_x"] == dim_x) & (df["network"] == network) & (df["rpvo_max"] == 1) +] +min_index = filtered_df["total_cycles"].idxmin() +min_row = df.loc[min_index] +total_cycles_rpvo1_value = min_row.total_cycles +print(f"total_cycles_rpvo1_value: {total_cycles_rpvo1_value}") + + +# Filter rows based on base of rpvo_max=4 for rhizome performance +filtered_df = df[ + (df["dim_x"] == dim_x) & (df["network"] == network) & (df["rpvo_max"] == 4) +] +min_index = filtered_df["total_cycles"].idxmin() +min_row = df.loc[min_index] +total_cycles_rpvo4_value = min_row.total_cycles +print(f"total_cycles_rpvo4_value: {total_cycles_rpvo4_value}") +speedup = total_cycles_rpvo1_value / total_cycles_rpvo4_value +print(f"speed up rpvo4: {speedup:.2f}") + + +# Filter rows based on base of rpvo_max=16 for rhizome performance +filtered_df = df[ + (df["dim_x"] == dim_x) & (df["network"] == network) & (df["rpvo_max"] == 16) +] +min_index = filtered_df["total_cycles"].idxmin() +min_row = df.loc[min_index] +total_cycles_rpvo16_value = min_row.total_cycles +print(f"total_cycles_rpvo16_value: {total_cycles_rpvo16_value}") +speedup = total_cycles_rpvo1_value / total_cycles_rpvo16_value +print(f"speed up rpvo16: {speedup:.2f}") + + diff --git a/Papers/ICPP_2024/Scripts/query_csv_strong_scaling.py b/Papers/ICPP_2024/Scripts/query_csv_strong_scaling.py new file mode 100644 index 0000000..a29379a --- /dev/null +++ b/Papers/ICPP_2024/Scripts/query_csv_strong_scaling.py @@ -0,0 +1,56 @@ +import pandas as pd +import sys +import os + +# Check if the command line argument for the CSV file is provided +if len(sys.argv) != 2: + print("Usage: python script.py ") + sys.exit(1) + +# Get the CSV file name from the command line argument +csv_file = sys.argv[1] + +# Read the CSV file into a Pandas DataFrame +try: + df = pd.read_csv(csv_file) +except FileNotFoundError: + print(f"File not found: {csv_file}") + sys.exit(1) + +network = "TORUS" +chips = df["dim_x"].unique() + + +# Filter rows based on dim_x == 16 for base of strong scaling +filtered_df = df[ + (df["dim_x"] == 16) & (df["network"] == network) & (df["rpvo_max"] == 1) +] +min_index = filtered_df["total_cycles"].idxmin() +min_row = df.loc[min_index] +total_cycles_16_value = min_row.total_cycles +print(f"total_cycles_16_value: {total_cycles_16_value}") + +# chip = [32, 64, 128] +for dim_x in chips: + rpvo_max = 1 + if dim_x == 128 or dim_x == 64: + rpvo_max = 16 + # Filter rows based on conditions + filtered_df = df[ + (df["dim_x"] == dim_x) + & (df["network"] == network) + & (df["rpvo_max"] == rpvo_max) + ] + + # print(filtered_df) + + min_index = filtered_df["total_cycles"].idxmin() + min_row = df.loc[min_index] + + # print(min_row) + + total_cycles_value = min_row.total_cycles + speedup = total_cycles_16_value / total_cycles_value + print(f"dim_x: {dim_x}") + print(f"total_cycles_value: {total_cycles_value}") + print(f"speed up: {speedup:.2f}") diff --git a/Papers/ICPP_2024/Scripts/read_all_consolidate_results.py b/Papers/ICPP_2024/Scripts/read_all_consolidate_results.py new file mode 100644 index 0000000..cd46794 --- /dev/null +++ b/Papers/ICPP_2024/Scripts/read_all_consolidate_results.py @@ -0,0 +1,107 @@ +import sys +import glob +import re + +import subprocess + +scripts_path = ( + "PATH-TO/CCA-Simulator/Papers/ICPP_2024/Scripts" +) +reader_script = scripts_path + "/read_cca_simulator_output.py" + + +def get_matching_file_names(patterns): + matching_files = [] + for pattern in patterns: + matching_files.extend(glob.glob(pattern)) + return matching_files + + +if __name__ == "__main__": + if len(sys.argv) < 3: + print("Usage: python script.py ") + sys.exit(1) + + consolidated_results_output_file = sys.argv[1] + file_patterns = sys.argv[2:] + + matching_files = get_matching_file_names(file_patterns) + + if not matching_files: + print("No matching files found.") + else: + # print("Matching file names:") + print("consolidated_results_output_file: ", consolidated_results_output_file) + # Write the consolidated results header in consolidated_results_output_file + with open(consolidated_results_output_file, "w") as file: + file.write( + "trail,network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,diffusions_filtered,actions_overlaped,diffusions_pruned,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,rpvo_max,rhizome_cuttoff,congestion_threshold_value,memory_cc,chip_area,totE,time,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm\n" + ) + + print( + "trail, network, termination, throttle, recv_buff_size, total_cycles, actions_created, actions_performed, actions_false_pred, diffusions_created,diffusions_performed,diffusions_false_pred, " + "avg_cells_active_percent, diffusions_filtered, actions_overlaped, diffusions_pruned, operons_moved, dim_x, dim_y, min_edges, max_edges, vicinity, pruning, rpvo_max, rhizome_cuttoff, congestion_threshold_value, memory_cc, " + "chip_area, totE, time, avg_objects_per_cc, total_objects_created, vertices, edges, graph_file, routing_algorithm" + ) + + for file_name in matching_files: + # print(file_name) + # Use regular expression to tokenize the input string + tokens = re.split(r"_", file_name) + """ print(tokens) """ + # Assign tokens to variables + app = tokens[0] + graph = tokens[2] + vertices = tokens[4] + edges = tokens[6] + rpvo_max = tokens[8] + rhizome_cuttoff = tokens[10] + trail = tokens[12] + dim_x = tokens[14] + dim_y = tokens[16] + throttle = tokens[20] + recvbuff = tokens[22] + vicinity = tokens[24] + ghosts_max = tokens[27] + edges_min = tokens[30] + edges_max = tokens[33] + termimation = tokens[35] + network = tokens[37] + pruning = tokens[40] + + # Print the values of the variables + """ print("App:", app) + print("square_x:", dim_x) + print("square_y:", dim_y) + print("graph:", graph) + print("vertices:", vertices) + print("edges:", edges) + print("throttle:", throttle) + print("recvbuff:", recvbuff) + print("vicinity:", vicinity) + print("edges_max:", edges_max) + print("ghosts_max:", ghosts_max) + print("termimation:", termimation) + print("rpvo_max:", rpvo_max) + print("network:", network) + print("pruning:", pruning) """ + + reader_to_call = [ + "python3", + reader_script, + file_name, + trail, + termimation, + vicinity, + ghosts_max, + edges_min, + edges_max, + network, + pruning, + rpvo_max, + rhizome_cuttoff, + consolidated_results_output_file, + ] + + # Run the script as a separate process with arguments + subprocess.call(reader_to_call) diff --git a/Papers/ICPP_2024/Scripts/read_cca_simulator_output.py b/Papers/ICPP_2024/Scripts/read_cca_simulator_output.py new file mode 100644 index 0000000..0ebf566 --- /dev/null +++ b/Papers/ICPP_2024/Scripts/read_cca_simulator_output.py @@ -0,0 +1,622 @@ +""" +BSD 3-Clause License + +Copyright (c) 2024, Bibrak Qamar and Maciej Andrzej Brodowicz + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +""" + +# For argument parsing +import sys +import math + +args = sys.argv + +output_file = args[1] +trail = args[2] +termination_switch = args[3] +vicinity = args[4] +ghosts_max = args[5] +min_edges = args[6] +max_edges = args[7] +network = args[8] +pruning = args[9] +rpvo_max = args[10] +rhizome_cuttoff = args[11] + +consolidated_results_output_file = args[12] + +# Dimension-ordered (X-Y) routing +routing_algorithm = "XY" + +# open the file in read mode +with open(output_file, "r") as file: + + # read the header line and discard it + header = file.readline() + + # read the next line and split it into variables + graph_file, vertices, edges, root_vertex = file.readline().strip().split() + + # convert vertices, edges and root_vertex to integers + vertices, edges, root_vertex = map(int, [vertices, edges, root_vertex]) + + # read the header line for the table and discard it + header = file.readline() + + # read the next line and split it into variables + ( + shape, + dim_x, + dim_y, + hx, + hy, + hdepth, + hbandwidth_max, + cells, + compute_cells, + sink_cells, + memory, + throttle, + recv_buff_size, + ) = ( + file.readline().strip().split() + ) + + # convert dim_x, dim_y, cells, and memory to integers + ( + dim_x, + dim_y, + hx, + hy, + hdepth, + hbandwidth_max, + cells, + compute_cells, + sink_cells, + memory, + throttle, + recv_buff_size, + ) = map( + int, + [ + dim_x, + dim_y, + hx, + hy, + hdepth, + hbandwidth_max, + cells, + compute_cells, + sink_cells, + memory, + throttle, + recv_buff_size, + ], + ) + + # read the header line for the table and discard it + header = file.readline() + congestion_policy, congestion_threshold_value = file.readline().strip().split() + + # read the header line for the table and discard it + header = file.readline() + queues_configuration, action_queue_size, diffuse_queue_size = ( + file.readline().strip().split() + ) + + # read the header line for the table and discard it + header = file.readline() + ghost_children_max = file.readline().strip().split() + + # read the header line for the table and discard it + header = file.readline() + + # read the next line and split it into variables + ( + total_cycles, + total_objects_created, + total_actions_created, + total_actions_performed, + total_actions_false_pred, + total_diffusions_created, + total_diffusions_performed, + total_diffusions_false_pred, + total_diffusions_filtered, + total_actions_overlaped, + total_diffusions_pruned, + operons_moved, + ) = ( + file.readline().strip().split() + ) + + # convert cycles, invoked, performed and false_pred to integers + ( + cycles, + objects_created, + actions_created, + actions_performed, + actions_false_pred, + diffusions_created, + diffusions_performed, + diffusions_false_pred, + diffusions_filtered, + actions_overlaped, + diffusions_pruned, + operons_moved, + ) = map( + int, + [ + total_cycles, + total_objects_created, + total_actions_created, + total_actions_performed, + total_actions_false_pred, + total_diffusions_created, + total_diffusions_performed, + total_diffusions_false_pred, + total_diffusions_filtered, + total_actions_overlaped, + total_diffusions_pruned, + operons_moved, + ], + ) + + # read the header line for the table and discard it + header = file.readline() + avg_objects_per_cc = file.readline().strip() + + # read the header line for the table and discard it + header = file.readline() + avg_cells_active_percent = file.readline().strip() + +# network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,diffusions_created,diffusions_performed,diffusions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,min_edges,max_edges,vicinity,pruning,congestion_threshold_value,memory_cc,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm +ON_text = "ON" +OFF_text = "OFF" +throttle_text = ON_text +if throttle == 0: + throttle_text = OFF_text + +memory_cc = int(memory / (dim_x * dim_y)) + + +######### AREA ENERGY PERFORMANCE AND COST MODEL ######### + +# total operon nearest-neighbor hops +op_hops = 52311459 # 75e6 +# total operons +op_count = 1252526 # 1e6 +# average operon payload +payload_bytes = 4 +# actions executed +action_count = 110119 # 2e6 +# bytes per action +action_bytes = 4 +# Ruche distance (in nearest neighbor hops) +ruche_len = 3 +# Ruche fraction of all operon traffic +ruche_op_hops = 60e6 + +# fontons per die +fn = 64 +# SRAM per fonton +sram_bytes = 2048 * 1024 # 1*1024*1024 +# clock [Hz] +freq = 1e9 +# flit (operon) size +flit_bits = 256 +# word size [bits] +word = 64 + + +# From File +fn = dim_x +sram_bytes = memory_cc +op_hops = operons_moved +op_count = actions_created +payload_bytes = 4 +action_count = actions_performed +action_bytes = 4 + + +############################################################################# +### data from Dalorex paper +############################################################################# +# SRAM density (7nm) [byte/m^2] +sram_byte_density = 29.2e6 / 8 / 1e-6 + +# leakage power (32KB @7nm) [W/byte] +sram_byte_leakage = 16.9e-6 / 32768 + +# SRAM access cost per access [J/word] +sram_rd_energy = 5.8e-12 +sram_wr_energy = 9.12e-12 + +# NoC: energy to send message bit over unit distance [J/m] +msg_bit_energy = 8e-12 / 32 / 1e-3 + +############################################################################# +### RV +############################################################################# +# SiFive: RV32E in 13,500 gates +# ZERO_RISCY: 11,600 gates 2-stage pipeline +# RISC V transistor count +rv_T = 12000 * 4 + +# RISC V area (vanilla core) +rv_area = 0.024e-6 + +############################################################################# +### transistor counts +############################################################################# +# logic density (TSMC original N7) +Tdensity = 91e12 + +# basic component transistor counts: flip-flop, n:1 muxes +fdreT = 12 +mux2T = 8 +mux3T = 2 * mux2T +mux4T = 3 * mux2T +mux6T = 5 * mux2T +mux5T = 4 * mux2T +mux7T = 6 * mux2T +mux8T = 2 * mux4T + mux2T + +# from Jung (Ruche nets) paper +# plain Cartesian mesh +# fifos: +ofifoT = 5 * 2 * fdreT * flit_bits +ififoT = 1 * 4 * fdreT * flit_bits +# muxes +fifomuxT = (2 * mux2T + 2 * mux4T + mux5T) * flit_bits +meshT = fifomuxT + ofifoT + ififoT + +# 2D torus supposedly 50% more expensive +t2dT = meshT * 1.5 + +# Ruche +ruche_ififoT = ififoT + 4 * fdreT * flit_bits +ruche_ofifoT = ofifoT +ruche_fifomuxT = (2 * mux3T + 2 * mux6T + mux7T + 2 * mux2T) * flit_bits +rucheT = ruche_fifomuxT + ruche_ofifoT + ruche_ififoT + +# Ruche and 2D torus +ruchet2dT = rucheT - meshT + t2dT + +# execution unit +euT = 100e3 + + +############################################################################# +def banner(s): + LEN = 50 + l = (LEN - len(s)) // 2 + if l <= 0: + print("***", s) + return + print(l * "*", s, l * "*") + + +# fonton area +def farea(netT): + memA = sram_bytes / sram_byte_density + netA = netT / Tdensity + euA = euT / Tdensity + return memA + netA + euA + + +# cumulative operon transport energy +def net_energy(hops, avg_dist): + return hops * avg_dist * flit_bits * msg_bit_energy + + +# dynamic memory energy +def mem_energy(word_reads, word_writes): + rdE = word_reads * sram_rd_energy + wrE = word_writes * sram_wr_energy + return rdE + wrE + + +# static energy +def leakage_power(): + return fn * fn * sram_bytes * sram_byte_leakage + + +# mesh NoC +def mesh_cost(): + # banner("2D Mesh") + fa = farea(meshT) + side = math.sqrt(fa) + + """ print(f"Chip area: {fn*fn*fa*1e6:.6f} mm^2")""" + """ print(f"Total CCs: {fn*fn}") + print(f"Total Chip Memory: {(fn*fn*sram_bytes)/(1024*1024)} MB") """ + + netE = net_energy(op_hops, side) + memE = mem_energy( + op_count * payload_bytes / (word / 8), action_count * action_bytes / (word / 8) + ) + time = cycles / freq + totE = netE + memE + leakage_power() * time + """ print(f"Total energy: {totE:.6f} J") + print(f"Average power: {totE/time:.6f} W") + print(f"Total time: {time:.6f} s") """ + + chip_area = fn * fn * fa * 1e6 + + return chip_area, totE, time + + +# 2D torus NoC +def t2d_cost(): + # banner("2D torus NoC") + fa = farea(t2dT) + side = math.sqrt(fa) + op_dist = 2 * (fn - 1) * side / fn + + """ print(f"Chip area: {fn*fn*fa*1e6:.6f} mm^2")""" + """ print(f"Total CCs: {fn*fn}") + print(f"Total Chip Memory: {(fn*fn*sram_bytes)/(1024*1024)} MB") """ + + netE = net_energy(op_hops, op_dist) + memE = mem_energy( + op_count * payload_bytes / (word / 8), action_count * action_bytes / (word / 8) + ) + time = cycles / freq + totE = netE + memE + leakage_power() * time + """ print(f"Total energy: {totE:.6f} J") + print(f"Average power: {totE/time:.6f} W") + print(f"Total time: {time:.6f} s") """ + + chip_area = fn * fn * fa * 1e6 + + return chip_area, totE, time + + +# Ruche NoC +def ruche_cost(): + banner("Ruche NoC") + fa = farea(rucheT) + side = math.sqrt(fa) + + print(f"Chip area: {fn*fn*fa*1e6:.6f} mm^2") + print(f"Total CCs: {fn*fn}") + print(f"Total Chip Memory: {(fn*fn*sram_bytes)/(1024*1024)} MB") + + if ruche_op_hops > op_hops: + print("Error: count of operon hops over Ruche links greater than total hops") + sys.exit(1) + meshE = net_energy(op_hops - ruche_op_hops, side) + rucheE = net_energy(ruche_op_hops, side * ruche_len) + netE = meshE + rucheE + memE = mem_energy( + op_count * payload_bytes / (word / 8), action_count * action_bytes / (word / 8) + ) + time = cycles / freq + totE = netE + memE + leakage_power() * time + print(f"Total energy: {totE:.6f} J") + print(f"Average power: {totE/time:.6f} W") + print(f"Total time: {time:.6f} s") + + chip_area = fn * fn * fa * 1e6 + + return chip_area, totE, time + + +# 2D torus + Ruche NoC +def ruchet2d_cost(): + banner("2D torus and Ruche NoC") + fa = farea(ruchet2dT) + side = math.sqrt(fa) + + print(f"Chip area: {fn*fn*fa*1e6:.6f} mm^2") + print(f"Total CCs: {fn*fn}") + print(f"Total Chip Memory: {(fn*fn*sram_bytes)/(1024*1024)} MB") + + if ruche_op_hops > op_hops: + print("Error: count of operon hops over Ruche links greater than total hops") + sys.exit(1) + t2d_dist = 2 * (fn - 1) * side / fn + t2dE = net_energy(op_hops - ruche_op_hops, t2d_dist) + rucheE = net_energy(ruche_op_hops, side * ruche_len) + netE = t2dE + rucheE + memE = mem_energy( + op_count * payload_bytes / (word / 8), action_count * action_bytes / (word / 8) + ) + time = cycles / freq + totE = netE + memE + leakage_power() * time + print(f"Total energy: {totE:.6f} J") + print(f"Average power: {totE/time:.6f} W") + print(f"Total time: {time:.6f} s") + + chip_area = fn * fn * fa * 1e6 + + return chip_area, totE, time + + +#################### + +if network == "MESH": + chip_area, totE, time = mesh_cost() +elif network == "TORUS": + chip_area, totE, time = t2d_cost() +else: + print("Invalid Network! ERROR") +# print(chip_area, totE, time +""" print(f"Chip area: {chip_area:.6f} mm^2") +print(f"Total energy: {totE:.6f} J") +print(f"Total time: {time:.6f} s") """ + + +print( + trail + + "," + + network + + "," + + termination_switch + + "," + + throttle_text + + "," + + str(recv_buff_size) + + "," + + str(total_cycles) + + "," + + str(actions_created) + + "," + + str(actions_performed) + + "," + + str(actions_false_pred) + + "," + + str(diffusions_created) + + "," + + str(diffusions_performed) + + "," + + str(diffusions_false_pred) + + "," + + str(avg_cells_active_percent) + + "," + + str(diffusions_filtered) + + "," + + str(actions_overlaped) + + "," + + str(diffusions_pruned) + + "," + + str(operons_moved) + + "," + + str(dim_x) + + "," + + str(dim_y) + + "," + + str(min_edges) + + "," + + str(max_edges) + + "," + + str(vicinity) + + "," + + str(pruning) + + "," + + str(rpvo_max) + + "," + + str(rhizome_cuttoff) + + "," + + str(congestion_threshold_value) + + "," + + str(memory_cc) + + "," + + str(f"{chip_area:.6f}") + + "," + + str(f"{totE:.6f}") + + "," + + str(f"{time:.6f}") + + "," + + str(avg_objects_per_cc) + + "," + + str(total_objects_created) + + "," + + str(vertices) + + "," + + str(edges) + + "," + + graph_file + + "," + + routing_algorithm +) + +with open(consolidated_results_output_file, "a") as file: + file.write( + trail + + "," + + network + + "," + + termination_switch + + "," + + throttle_text + + "," + + str(recv_buff_size) + + "," + + str(total_cycles) + + "," + + str(actions_created) + + "," + + str(actions_performed) + + "," + + str(actions_false_pred) + + "," + + str(diffusions_created) + + "," + + str(diffusions_performed) + + "," + + str(diffusions_false_pred) + + "," + + str(avg_cells_active_percent) + + "," + + str(diffusions_filtered) + + "," + + str(actions_overlaped) + + "," + + str(diffusions_pruned) + + "," + + str(operons_moved) + + "," + + str(dim_x) + + "," + + str(dim_y) + + "," + + str(min_edges) + + "," + + str(max_edges) + + "," + + str(vicinity) + + "," + + str(pruning) + + "," + + str(rpvo_max) + + "," + + str(rhizome_cuttoff) + + "," + + str(congestion_threshold_value) + + "," + + str(memory_cc) + + "," + + str(chip_area) + + "," + + str(totE) + + "," + + str(time) + + "," + + str(avg_objects_per_cc) + + "," + + str(total_objects_created) + + "," + + str(vertices) + + "," + + str(edges) + + "," + + graph_file + + "," + + routing_algorithm + + "\n" + ) diff --git a/Papers/ICS_2024/Plots/allocator_effect.py b/Papers/ICS_2024/Plots/allocator_effect.py deleted file mode 100644 index b7cfa49..0000000 --- a/Papers/ICS_2024/Plots/allocator_effect.py +++ /dev/null @@ -1,39 +0,0 @@ -import matplotlib.pyplot as plt -import matplotlib.ticker as mtick -import numpy as np - -# Data -graph_labels = ['LN', 'AM', 'E18', 'R18', 'WG', 'LJ', 'WK', 'R22'] -vicinity_allocator_improvement_values = [33.25, 0.00, 1.70, 20.80, 16.58, 3.88, 9.57, 39.55] # in percentages - -# Calculate geometric mean -""" geometric_mean = np.exp( - np.mean(np.log(np.array(vicinity_allocator_improvement_values) / 100))) * 100 """ - - -bar_width = 0.5 -# Create a bar plot -plt.figure(figsize=(8, 4)) -plt.bar(graph_labels, vicinity_allocator_improvement_values, width=bar_width, color='#2F5597', - linewidth=2, edgecolor='black', hatch='///') -""" plt.xlabel('Input Data Graph', fontsize=16) """ -plt.ylabel('Improvement', fontsize=18) -plt.yticks(fontsize=14) # Increase the y-axis tick label size -# Set y-axis ticks as percentages -plt.gca().yaxis.set_major_formatter(mtick.PercentFormatter(100, decimals=0)) - - -""" plt.title( - f'Improvement for Different Graphs (Geometric Mean: {geometric_mean:.2f}%)', fontsize=14) """ -# plt.title('Degradation for Different Graphs', fontsize=20) -# Adjust the y-axis range if needed -plt.ylim(0, max(vicinity_allocator_improvement_values) + 20) -plt.grid(axis='y', color='gray', linestyle='dashed', linewidth=1) - -plt.xticks(fontsize=14) # Increase the x-axis tick label size -# Add data labels above the bars -for i, v in enumerate(vicinity_allocator_improvement_values): - plt.text(i, v + 5, f'{v:.2f}%', ha='center', va='bottom', fontweight='bold', fontsize=14) - -plt.tight_layout() -plt.show() diff --git a/Papers/ICS_2024/Plots/buffer_throttle_plot.py b/Papers/ICS_2024/Plots/buffer_throttle_plot.py deleted file mode 100644 index 7596323..0000000 --- a/Papers/ICS_2024/Plots/buffer_throttle_plot.py +++ /dev/null @@ -1,146 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np - -# Data for graph_a and graph_b -# datasets = ['E16', 'E18', 'R16', 'R18', 'AM', 'LN', 'WG'] -datasets = ['E18', 'R18', 'AM', 'LN', 'WG'] -configurations_throttle = ['Throttle OFF', - 'Throttle ON', 'Combined Throttle and Buffer'] - -buffer_sizes = [1, 4, 8] - -# Performance improvement data -performance_data = { - 'Throttle OFF': { - 'E18': [1.00, 1.17, 1.31], - 'R18': [1.00, 1.10, 1.20], - 'AM': [1.00, 1.29, 1.40], - 'LN': [1.00, 1.06, 1.22], - 'WG': [1.00, 1.16, 1.31], - }, - 'Throttle ON': { - 'E18': [1.00, 1.33, 1.29], - 'R18': [1.00, 1.04, 1.29], - 'AM': [1.00, 1.20, 1.14], - 'LN': [1.00, 1.30, 1.36], - 'WG': [1.00, 1.06, 1.25], - }, - 'Combined Throttle and Buffer': { - 'E18': [2.04, 2.73, 2.65], - 'R18': [1.37, 1.42, 1.78], - 'AM': [1.25, 1.50, 1.44], - 'LN': [1.50, 1.97, 2.06], - 'WG': [1.49, 1.59, 1.87], - }, -} - -""" buffer_sizes = [1, 2, 4, 8] - -# Performance improvement data -performance_data = { - 'Throttle OFF': { - 'E18': [1.00, 1.17, 1.32, 1.93], - 'R18': [1.00, 1.10, 1.15, 1.19], - 'AM': [1.00, 1.42, 1.96, 3.21], - 'LN': [1.00, 1.20, 1.42, 1.96], - 'WG': [1.00, 1.06, 1.39, 1.69], - }, - 'Throttle ON': { - 'E18': [1.00, 0.97, 0.93, 0.93], - 'R18': [1.00, 1.15, 1.11, 1.09], - 'AM': [1.00, 1.04, 0.96, 1.04], - 'LN': [1.00, 1.24, 1.26, 1.28], - 'WG': [1.00, 0.95, 0.96, 1.09], - }, - 'Combined Throttle and Buffer': { - 'E18': [5.39, 5.21, 4.99, 5.03], - 'R18': [2.79, 3.22, 3.11, 3.06], - 'AM': [3.21, 3.33, 3.09, 3.33], - 'LN': [1.07, 1.33, 1.35, 1.37], - 'WG': [3.43, 3.27, 3.30, 3.74], - }, -} """ - - -# Create subplots for each buffer size -fig, axs = plt.subplots(1, len(buffer_sizes), figsize=( - 11, 5), sharey=True) - - -# Set the bar width -bar_width = 1 -num_elements = len(datasets) -thrice_bar = bar_width*3 -gap = 0.4 - -# Initialize the list with the first element (gap) -throttle_OFF_bar_pos = [0] -for _ in range(num_elements - 1): - # Calculate the next element and add it to the list - next_element = throttle_OFF_bar_pos[-1] + thrice_bar + gap - throttle_OFF_bar_pos.append(next_element) - -# Create a new positions by adding bar_width to each element of the throttle_OFF_bar_pos -throttle_ON_bar_pos = [element + bar_width for element in throttle_OFF_bar_pos] -throttle_ON_combined_bar_pos = [ - element + bar_width for element in throttle_ON_bar_pos] - -""" print(throttle_OFF_bar_pos) -print(throttle_ON_bar_pos) """ - -""" index = np.arange(len(datasets)) -print(index) -print(index + bar_width / 2) """ -# Loop through buffer sizes and create a subplot for each -plot_for_legend = [] -for i, buffer_size in enumerate(buffer_sizes): - ax = axs[i] - - # Extract data for the current buffer size - data_off = [performance_data['Throttle OFF'][dataset][i] - for dataset in datasets] - data_on = [performance_data['Throttle ON'][dataset][i] - for dataset in datasets] - data_combined = [performance_data['Combined Throttle and Buffer'][dataset][i] - for dataset in datasets] - - # Create bars - bar1 = ax.bar(throttle_OFF_bar_pos, data_off, align='center', - width=bar_width, label='Throttle OFF', color='#B00002', linewidth=0.8, edgecolor='black', hatch='///') - bar2 = ax.bar(throttle_ON_bar_pos, data_on, align='center', - width=bar_width, label='Throttle ON', color='yellow', linewidth=0.8, edgecolor='black', hatch='--') - bar3 = ax.bar(throttle_ON_combined_bar_pos, data_combined, align='center', - width=bar_width, label='Combined Throttle and Buffer', color='#2F5597', linewidth=0.8, edgecolor='black', hatch='x') - - ax.set_ylim(0.5, 2.8) - - # Set labels and ticks - if i == 0: - ax.set_ylabel('Speed Up', fontsize=20) - ax.yaxis.set_tick_params(labelsize=20) - plot_for_legend.append(bar1) - plot_for_legend.append(bar2) - plot_for_legend.append(bar3) - ax.set_title(f'Buffers: {buffer_size}', fontsize=20) - ax.set_xticks([element + 2*gap for element in throttle_OFF_bar_pos]) - ax.set_xticklabels(datasets) - ax.xaxis.set_tick_params(labelsize=20) - ax.grid(axis='y', color='gray', linestyle='dashed', linewidth=1) - - -# Collect legends -legends = [plot[0] for plot in plot_for_legend] -legends_text = ['Th. Off', 'Th. On', 'Combined Buffer & Th. On'] -# Create a single legend for the entire figure -fig.legend(legends, legends_text, loc='upper center', - bbox_to_anchor=(0.55, 1.02), ncol=3, prop={'size': 16}) - -# Add a common title -""" plt.suptitle( - 'Performance Impact of Throttle and Buffer Size', fontsize=16) """ - -# Show the plot -plt.tight_layout() -plt.subplots_adjust(wspace=0) -plt.subplots_adjust(top=0.85) -plt.show() diff --git a/Papers/ICS_2024/Plots/dynamic_graph_plot.py b/Papers/ICS_2024/Plots/dynamic_graph_plot.py deleted file mode 100644 index f26bda1..0000000 --- a/Papers/ICS_2024/Plots/dynamic_graph_plot.py +++ /dev/null @@ -1,65 +0,0 @@ -import matplotlib.pyplot as plt -#import pandas as pd -from matplotlib.ticker import FuncFormatter - -# Provided data -data = { - 'Iteration': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], - 'Dynamic': [2229, 8867, 6119, 5326, 4673, 4395, 4852, 4397, 3907, 3418], - 'Static': [2229, 4420, 6567, 8535, 10612, 12504, 14787, 16584, 18361, 20126] -} - -# Calculate the ratio of Static to Dynamic for each iteration -ratio_list = [static / dynamic for static, dynamic in zip(data['Static'], data['Dynamic'])] - -# Display the result -#result = dict(zip(data['Iteration'], ratio_list)) -print(ratio_list) - - - -# Create subplots for each buffer size -fig, axs = plt.subplots(figsize=(7, 4)) #, sharey=True) - -dyn_bwidth = [1,4,7,10,13,16,19,22,25,28] -stat_bwidth = [2,5,8,11,14,17,20,23,26,29] - -color_blue='#2F5597' -color_red='#B00002' -color_yellow='yellow' - -bar_width = 1 -bar1 = plt.bar(dyn_bwidth, data['Dynamic'], align='center', - width=bar_width, label='Dynamic-BFS', color=color_yellow, linewidth=1, edgecolor='black', hatch='///') -bar2 = plt.bar(stat_bwidth, data['Static'], align='center', - width=bar_width, label='Static-BFS', color=color_red, linewidth=1, edgecolor='black', hatch='--') - -# plt.bar(df['Iteration'], df['Dynamic'], label='Dynamic') -# plt.bar(df['Iteration'], df['Static'], bottom=df['Dynamic'], label='Static') - -# Adding labels and title -plt.xlabel('Increment', fontsize=18) -plt.ylabel('Cycles', fontsize=18) - -# Format y-axis ticks to be in thousands -def format_thousands(x, pos): - return f'{x / 1000:.0f}K' - -formatter = FuncFormatter(format_thousands) -axs.yaxis.set_major_formatter(formatter) - -axs.set_yticks(range(0, 20001, 5000)) - -plt.yticks(fontsize=14) # Increase the y-axis tick label size - -#plt.title('Dynamic vs Static Cycles over Increments') -plt.grid(axis='y', color='gray', linestyle='dashed', linewidth=1) -plt.legend(fontsize=12) - -plt.xticks([1.5,4.5,7.5,10.5,13.5,16.5,19.5,22.5,25.5,28.5],fontsize=14) -axs.set_xticklabels(['1','2','3','4','5','6','7','8','9','10']) -# Show the plot -plt.tight_layout() -plt.subplots_adjust(wspace=0.25) -plt.subplots_adjust(top=0.85) -plt.show() diff --git a/Papers/ICS_2024/Plots/speedup_vs_Dalorex_all_chips.py b/Papers/ICS_2024/Plots/speedup_vs_Dalorex_all_chips.py deleted file mode 100644 index 877e6cd..0000000 --- a/Papers/ICS_2024/Plots/speedup_vs_Dalorex_all_chips.py +++ /dev/null @@ -1,112 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np - -# Data for graph_a and graph_b -# datasets = ['E16', 'E18', 'R16', 'R18', 'AM', 'LN', 'WG'] -datasets = ['AM', 'R22', 'LJ', 'WK'] -chip_size = ['16', '32', '64'] -apps = ['BFS', 'SSSP'] - -# Performance improvement data -performance_data = { - '16': { - 'AM': [5.12, 5.45], - 'R22': [1.58, 1.02], - 'LJ': [2.12, 2.24], - 'WK': [2.82, 2.59], - }, - '32': { - 'AM': [2.77, 2.69], - 'R22': [1.62, 1.03], - 'LJ': [1.51, 1.49], - 'WK': [3.35, 3.55], - }, - '64': { - 'AM': [1.60, 1.59], - 'R22': [3.60, 1.76], - 'LJ': [1.44, 1.78], - 'WK': [3.57, 3.41], - }, -} - -# Create subplots for each buffer size -fig, axs = plt.subplots(1, len(apps), figsize=( - 8.5, 4)) #, sharey=True) - - -# Set the bar width -bar_width = 1 -num_elements = len(datasets) -thrice_bar = bar_width*4 -gap = 0.4 - -# Initialize the list with the first element (gap) -chip_16_bar_pos = [0] -for _ in range(num_elements - 1): - # Calculate the next element and add it to the list - next_element = chip_16_bar_pos[-1] + thrice_bar + gap - chip_16_bar_pos.append(next_element) - -# Create a new positions by adding bar_width to each element of the chip_16_bar_pos -chip_32_bar_pos = [element + bar_width for element in chip_16_bar_pos] -chip_64_bar_pos = [ - element + bar_width for element in chip_32_bar_pos] -""" chip_128_bar_pos = [ - element + bar_width for element in chip_64_bar_pos] - """ -# Loop through buffer sizes and create a subplot for each -plot_for_legend = [] -for i, app in enumerate(apps): - ax = axs[i] - - # Extract data for the current buffer size - data_16 = [performance_data['16'][dataset][i] - for dataset in datasets] - data_32 = [performance_data['32'][dataset][i] - for dataset in datasets] - data_64 = [performance_data['64'][dataset][i] - for dataset in datasets] - """ data_128 = [performance_data['128'][dataset][i] - for dataset in datasets] """ - - # Create bars - bar1 = ax.bar(chip_16_bar_pos, data_16, align='center', - width=bar_width, label='16', color='#B00002', linewidth=0.8, edgecolor='black', hatch='///') - bar2 = ax.bar(chip_32_bar_pos, data_32, align='center', - width=bar_width, label='32', color='yellow', linewidth=0.8, edgecolor='black', hatch='--') - bar3 = ax.bar(chip_64_bar_pos, data_64, align='center', - width=bar_width, label='64', color='#2F5597', linewidth=0.8, edgecolor='black', hatch='x') - """ bar4 = ax.bar(chip_128_bar_pos, data_128, align='center', - width=bar_width, label='32', color='green', linewidth=0.8, edgecolor='black', hatch='*') """ - - # Set labels and ticks - if i == 0: - plot_for_legend.append(bar1) - plot_for_legend.append(bar2) - plot_for_legend.append(bar3) - # plot_for_legend.append(bar4) - ax.set_title(f'{app}', fontsize=18) - ax.set_ylabel('Speed Up', fontsize=14) - ax.yaxis.set_tick_params(labelsize=14) - ax.set_xticks([element + 4*gap for element in chip_16_bar_pos]) - ax.set_xticklabels(datasets) - ax.xaxis.set_tick_params(labelsize=14) - ax.grid(axis='y', color='gray', linestyle='dashed', linewidth=1) - - -# Collect legends -legends = [plot[0] for plot in plot_for_legend] -legends_text = ['Chip: 16x16', 'Chip: 32x32', 'Chip: 64x64'] -# Create a single legend for the entire figure -fig.legend(legends, legends_text, loc='upper center', - bbox_to_anchor=(0.55, 1.02), ncol=5, prop={'size': 12}) - -# Add a common title -""" plt.suptitle( - 'Performance Impact of Throttle and Buffer Size', fontsize=16) """ - -# Show the plot -plt.tight_layout() -plt.subplots_adjust(wspace=0.25) -plt.subplots_adjust(top=0.85) -plt.show() diff --git a/Papers/ICS_2024/Plots/speedup_vs_self_all_chips copy.py b/Papers/ICS_2024/Plots/speedup_vs_self_all_chips copy.py deleted file mode 100644 index 0db5b15..0000000 --- a/Papers/ICS_2024/Plots/speedup_vs_self_all_chips copy.py +++ /dev/null @@ -1,127 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np - -# Data for graph_a and graph_b -# datasets = ['E16', 'E18', 'R16', 'R18', 'AM', 'LN', 'WG'] -datasets = ['E18', 'R22', 'LN', 'LJ', 'WK'] -chip_size = ['16', '32', '64', '128'] -apps = ['BFS', 'SSSP'] - -1 -2.281062425 -3.731222386 -4.478786093 - -# Performance improvement data -performance_data = { - '16': { - 'E18': [1.00, 1.00], - 'R22': [1.00, 1.00], - 'LN': [1.00, 1.00], - 'LJ': [1.00, 1.00], - 'WK': [1.00, 1.00], - }, - '32': { - 'E18': [2.07, 1.98], - 'R22': [2.44, 2.28], - 'LN': [2.28, 2.28], - 'LJ': [2.19, 2.28], - 'WK': [1.98, 1.74], - }, - '64': { - 'E18': [4.02, 4.12], - 'R22': [5.72, 4.26], - 'LN': [3.78, 3.73], - 'LJ': [4.47, 4.91], - 'WK': [2.31, 1.83], - }, - '128': { - 'E18': [8.27, 8.04], - 'R22': [8.56, 5.77], - 'LN': [5.13, 4.47], - 'LJ': [9.16, 8.99], - 'WK': [2.84, 1.83], - }, -} - -# Create subplots for each buffer size -fig, axs = plt.subplots(1, len(apps), figsize=( - 8.5, 4)) # , sharey=True) - - -# Set the bar width -bar_width = 1 -num_elements = len(datasets) -thrice_bar = bar_width*4 -gap = 0.4 - -# Initialize the list with the first element (gap) -chip_16_bar_pos = [0] -for _ in range(num_elements - 1): - # Calculate the next element and add it to the list - next_element = chip_16_bar_pos[-1] + thrice_bar + gap - chip_16_bar_pos.append(next_element) - -# Create a new positions by adding bar_width to each element of the chip_16_bar_pos -chip_32_bar_pos = [element + bar_width for element in chip_16_bar_pos] -chip_64_bar_pos = [ - element + bar_width for element in chip_32_bar_pos] -chip_128_bar_pos = [ - element + bar_width for element in chip_64_bar_pos] - -# Loop through buffer sizes and create a subplot for each -plot_for_legend = [] -for i, app in enumerate(apps): - ax = axs[i] - - # Extract data for the current buffer size - data_16 = [performance_data['16'][dataset][i] - for dataset in datasets] - data_32 = [performance_data['32'][dataset][i] - for dataset in datasets] - data_64 = [performance_data['64'][dataset][i] - for dataset in datasets] - data_128 = [performance_data['128'][dataset][i] - for dataset in datasets] - - # Create bars - bar1 = ax.bar(chip_16_bar_pos, data_16, align='center', - width=bar_width, label='16', color='#B00002', linewidth=0.8, edgecolor='black', hatch='///') - bar2 = ax.bar(chip_32_bar_pos, data_32, align='center', - width=bar_width, label='32', color='yellow', linewidth=0.8, edgecolor='black', hatch='--') - bar3 = ax.bar(chip_64_bar_pos, data_64, align='center', - width=bar_width, label='64', color='#2F5597', linewidth=0.8, edgecolor='black', hatch='x') - bar4 = ax.bar(chip_128_bar_pos, data_128, align='center', - width=bar_width, label='128', color='green', linewidth=0.8, edgecolor='black', hatch='*') - - # Set labels and ticks - if i == 0: - plot_for_legend.append(bar1) - plot_for_legend.append(bar2) - plot_for_legend.append(bar3) - plot_for_legend.append(bar4) - ax.set_title(f'{app}', fontsize=18) - ax.set_ylabel('Speed Up', fontsize=14) - ax.yaxis.set_tick_params(labelsize=14) - ax.set_xticks([element + 4*gap for element in chip_16_bar_pos]) - ax.set_xticklabels(datasets) - ax.xaxis.set_tick_params(labelsize=14) - ax.grid(axis='y', color='gray', linestyle='dashed', linewidth=1) - - -# Collect legends -legends = [plot[0] for plot in plot_for_legend] -legends_text = ['Chip: 16x16', 'Chip: 32x32', 'Chip: 64x64', 'Chip: 128x128'] -# Create a single legend for the entire figure -fig.legend(legends, legends_text, loc='upper center', - bbox_to_anchor=(0.55, 1.02), ncol=5, prop={'size': 12}) - -# Add a common title -""" plt.suptitle( - 'Performance Impact of Throttle and Buffer Size', fontsize=16) """ - -# Show the plot -plt.tight_layout() -plt.subplots_adjust(wspace=0.25) -plt.subplots_adjust(top=0.85) -plt.show() diff --git a/Papers/ICS_2024/Results/Congestion_Allocation/amazon.results b/Papers/ICS_2024/Results/Congestion_Allocation/amazon.results deleted file mode 100644 index 5be6e2e..0000000 --- a/Papers/ICS_2024/Results/Congestion_Allocation/amazon.results +++ /dev/null @@ -1,8 +0,0 @@ -network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,max_edges,vicinity,congestion_threshold_value,total_memory,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm -TORUS,OFF,OFF,1,8909,2250524,524134,1726390,59.9335,144115720,128,128,5,1,90,369098752,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,OFF,4,6877,2211979,503429,1708550,58.2593,141569597,128,128,5,1,90,369098752,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,OFF,8,6360,2526216,564478,1961738,58.5191,161692615,128,128,5,1,90,369098752,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,1,7108,2043434,462711,1580723,53.3413,130838759,128,128,5,1,90,369098752,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -MESH,OFF,ON,4,10345,2574772,595383,1979389,58.788,219762688,128,128,5,1,181,369098752,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,5916,2100437,466960,1633477,49.567,134413325,128,128,5,1,90,369098752,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,6186,2417519,530757,1886762,48.4461,154749997,128,128,5,1,90,369098752,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY diff --git a/Papers/ICS_2024/Results/Congestion_Allocation/erdos18.results b/Papers/ICS_2024/Results/Congestion_Allocation/erdos18.results deleted file mode 100644 index 11c3492..0000000 --- a/Papers/ICS_2024/Results/Congestion_Allocation/erdos18.results +++ /dev/null @@ -1,9 +0,0 @@ -network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,max_edges,vicinity,congestion_threshold_value,total_memory,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm -TORUS,OFF,OFF,1,14190,3813011,628720,3184291,86.8617,244077515,128,128,20,1,90,369098752,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,OFF,4,12045,3581199,573237,3007962,88.7689,229117187,128,128,20,1,90,369098752,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,OFF,8,10761,3582487,550931,3031556,87.5724,229168197,128,128,20,1,90,369098752,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,1,6932,3245843,498722,2747121,87.0614,207672405,128,128,20,1,90,369098752,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,5284,3215638,491276,2724362,85.2404,205681616,128,128,20,128,90,369098752,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -MESH,OFF,ON,4,8988,3608191,585520,3022671,87.627,309576669,128,128,20,1,181,369098752,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,5194,3129416,471341,2658075,84.8884,200227917,128,128,20,1,90,369098752,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,5341,3365614,516867,2848747,86.5664,215412980,128,128,20,1,90,369098752,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY diff --git a/Papers/ICS_2024/Results/Congestion_Allocation/language.results b/Papers/ICS_2024/Results/Congestion_Allocation/language.results deleted file mode 100644 index eb62e08..0000000 --- a/Papers/ICS_2024/Results/Congestion_Allocation/language.results +++ /dev/null @@ -1,9 +0,0 @@ -network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,max_edges,vicinity,congestion_threshold_value,total_memory,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm -TORUS,OFF,OFF,1,4675,1377639,485896,891743,47.2141,56868805,128,128,12,16,90,1677721600,25.9999,425983,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,OFF,4,4402,1338576,467279,871297,40.4374,55469846,128,128,12,16,90,1677721600,25.9999,425983,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,OFF,8,3823,1340918,466178,874740,38.9968,55557170,128,128,12,16,90,1677721600,25.9999,425983,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,1,3098,1335165,467523,867642,55.6973,55321603,128,128,12,16,90,1677721600,25.9999,425983,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,3555,1725771,616676,1109095,51.2405,72455418,128,128,12,128,90,1677721600,25.9999,425983,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -MESH,OFF,ON,4,3603,1332570,465344,867226,56.9206,71610286,128,128,12,16,181,1677721600,25.9999,425983,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,2373,1316161,458611,857550,56.4456,54547612,128,128,12,16,90,1677721600,25.9999,425983,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,2269,1323953,459052,864901,57.261,54939176,128,128,12,16,90,1677721600,25.9999,425983,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY diff --git a/Papers/ICS_2024/Results/Congestion_Allocation/rmat18.results b/Papers/ICS_2024/Results/Congestion_Allocation/rmat18.results deleted file mode 100644 index 1f56368..0000000 --- a/Papers/ICS_2024/Results/Congestion_Allocation/rmat18.results +++ /dev/null @@ -1,9 +0,0 @@ -network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,max_edges,vicinity,congestion_threshold_value,total_memory,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm -TORUS,OFF,OFF,1,24383,6544284,657165,5887119,87.2097,403520584,128,128,20,3,90,8231321600,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,OFF,4,21985,6401295,627759,5773536,89.3678,394749367,128,128,20,3,90,8231321600,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,OFF,8,20271,6156119,596326,5559793,85.33,379518913,128,128,20,3,90,8231321600,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,1,17794,5970180,577554,5392626,73.6499,368337512,128,128,20,3,90,8231321600,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,21588,8654043,876461,7777582,82.24,553963905,128,128,20,128,90,8231321600,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -MESH,OFF,ON,4,24427,5804710,559986,5244724,69.6988,474812055,128,128,20,3,181,8231321600,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,17097,5923319,577355,5345964,76.7381,365345243,128,128,20,3,90,8231321600,27.1131,444221,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,13698,5733969,550943,5183026,79.3082,353502809,128,128,20,3,90,8231321600,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY diff --git a/Papers/ICS_2024/Results/Congestion_Allocation/webGoogle.results b/Papers/ICS_2024/Results/Congestion_Allocation/webGoogle.results deleted file mode 100644 index c25f98c..0000000 --- a/Papers/ICS_2024/Results/Congestion_Allocation/webGoogle.results +++ /dev/null @@ -1,9 +0,0 @@ -network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,max_edges,vicinity,congestion_threshold_value,total_memory,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm -TORUS,OFF,OFF,1,26422,6907851,1263885,5643966,87.7373,438512826,128,128,20,3,90,1677721600,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,OFF,4,22712,6249266,1125946,5123320,86.6443,396813559,128,128,20,3,90,1677721600,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,OFF,8,20102,6338977,1144958,5194019,86.9613,402463557,128,128,20,3,90,1677721600,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,1,17661,7029390,1275855,5753535,84.1403,446310734,128,128,20,3,90,1677721600,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,19890,7385148,1345081,6040067,79.6034,472104962,128,128,20,128,90,1677721600,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -MESH,OFF,ON,4,29756,7650840,1410380,6240460,83.9696,639710043,128,128,20,3,181,1677721600,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,16593,6717301,1220805,5496496,84.6548,426414821,128,128,20,3,90,1677721600,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,8,14081,6541738,1186091,5355647,85.1608,415291420,128,128,20,3,90,1677721600,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY diff --git a/Papers/ICS_2024/Results/Scaling/exp5_bfs_all.results b/Papers/ICS_2024/Results/Scaling/exp5_bfs_all.results deleted file mode 100644 index 329eaea..0000000 --- a/Papers/ICS_2024/Results/Scaling/exp5_bfs_all.results +++ /dev/null @@ -1,68 +0,0 @@ -network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,max_edges,vicinity,congestion_threshold_value,total_memory,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm -TORUS,OFF,ON,4,7065,2273529,512238,1761291,45.5688,145437856,128,128,5,1,90,1073741824,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,6539,2260018,493825,1766193,43.2492,144857270,128,128,5,1,90,1073741824,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,5074,3158594,481790,2676804,87.6028,202257453,128,128,20,1,90,1073741824,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,5387,3422323,536317,2886006,86.8261,219081955,128,128,20,1,90,1073741824,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,2527,1311386,451000,860386,53.7865,54547862,128,128,16,12,90,1073741824,25.4795,417456,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,2551,1320170,453401,866769,51.8538,54851648,128,128,16,12,90,1073741824,25.4795,417456,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,153176,100691234,9392884,91298350,94.9118,6398596659,128,128,100,128,90,68719476736,309.886,5077171,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,147236,95712576,8839266,86873310,94.0846,6063153885,128,128,100,7,90,68719476736,309.886,5077171,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,8,147502,96839740,8952351,87887389,94.323,6134425030,128,128,100,7,90,68719476736,309.886,5077171,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,15531,5893702,569114,5324588,80.5138,363429888,128,128,20,3,90,10737418240,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,16342,5890830,569058,5321772,79.7003,363147822,128,128,20,3,90,10737418240,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,409437,151380766,4706800,146673966,73.651,9659836511,128,128,300,10,90,137438953472,284.096,4654632,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,591669,200235115,6354826,193880289,79.4798,12811959803,128,128,230,128,90,137438953472,289.354,4740772,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,357680,153396009,4874793,148521216,81.2027,9784210232,128,128,230,12,90,137438953472,289.354,4740772,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,8,342967,156822571,4964106,151858465,83.7353,10003082848,128,128,230,12,90,137438953472,289.354,4740772,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,15776,6706053,1218953,5487100,86.5271,425681597,128,128,20,3,90,10737418240,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,8,14461,6563953,1191538,5372415,84.5839,416733263,128,128,20,3,90,10737418240,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,858940,176323123,11985215,164337908,76.1561,11276318196,128,128,55,128,90,68719476736,318.164,5212793,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,780456,158816898,10015282,148801616,75.5369,10165681689,128,128,85,128,90,68719476736,285.641,4679944,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,705746,140689467,8750346,131939121,73.4368,8972844849,128,128,85,5,90,68719476736,285.641,4679944,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,771410,156800393,10745267,146055126,74.6209,9948565665,128,128,55,8,90,68719476736,318.164,5212793,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,8,714686,144059979,9703287,134356692,72.9572,9140770882,128,128,55,8,90,68719476736,318.164,5212793,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,22641,1986136,464512,1521624,98.0011,15892401,16,16,5,1,11,134217728,1023.88,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,19895,1882650,437452,1445198,98.2645,15059966,16,16,5,1,11,134217728,1023.88,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,41990,3399841,546442,2853399,98.2679,27213950,16,16,20,1,11,134217728,1024.55,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,37285,3218709,498586,2720123,98.3878,25747795,16,16,20,1,11,134217728,1024.55,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,12981,1302580,447340,855240,95.6775,6731185,16,16,150,5,11,2387017728,1561.34,399704,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,12830,1314445,449229,865216,96.6862,6784504,16,16,150,5,11,2387017728,1561.34,399704,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,1357590,99509483,9305406,90204077,97.7813,790185209,16,16,400,4,11,34359738368,18975.3,4857689,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,77660,5848783,399054,5449729,97.5947,46741722,16,16,80,2,11,1598177280,1049.69,268720,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,3061857,141333803,3948443,137385360,91.015,1130671698,16,16,1500,5,11,137438953472,16510.1,4226594,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,82419,6599677,1135167,5464510,96.4145,52791543,16,16,80,2,11,1598177280,3582.31,917071,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,2007672,140775823,8132661,132643162,96.665,1125850861,16,16,300,3,11,34359738368,16576.6,4243603,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,11902,2044754,485443,1559311,95.9023,32707856,32,32,5,1,22,268435456,255.969,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,11490,2024991,480915,1544076,94.3219,32358392,32,32,5,1,22,268435456,255.969,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,20229,3280272,525759,2754513,95.7376,52475366,32,32,20,1,22,268435456,256.138,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,21077,3290112,517469,2772643,89.2635,52621788,32,32,20,1,22,268435456,256.138,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,5669,1447123,503844,943279,90.4165,14450847,32,32,90,6,22,882835456,390.969,400352,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,5387,1395450,482498,912952,88.5789,13984721,32,32,90,6,22,882835456,390.969,400352,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,618079,100408524,9255775,91152749,97.4259,1594553719,32,32,300,5,22,68719476736,4754.08,4868183,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,8,592238,98251670,9124819,89126851,96.165,1560286781,32,32,300,5,22,68719476736,4754.08,4868183,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,36822,5837434,407405,5430029,95.3218,92993863,32,32,50,2,22,3708354560,282.17,288942,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,36358,5789089,402252,5386837,93.2533,92185593,32,32,50,2,22,3708354560,282.17,288942,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,1250456,151055035,4427985,146627050,92.0392,2415492120,32,32,600,7,22,137438953472,4242.8,4344625,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,8,1118379,146045369,4287478,141757891,88.9439,2335446807,32,32,600,7,22,137438953472,4242.8,4344625,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,43442,6790107,1222933,5567174,94.8787,108023063,32,32,20,3,22,3708354560,926.387,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,8,44791,7006751,1259358,5747393,93.9473,111448977,32,32,20,3,22,3708354560,926.386,948619,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,1019148,158527001,9556996,148970005,95.5437,2528802261,32,32,85,5,22,68719476736,4570.26,4679947,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,1010266,156446967,9252499,147194468,95.9213,2498101237,32,32,100,6,22,68719476736,4448.53,4555298,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,8,976877,153786342,9047818,144738524,93.9443,2455513425,32,32,100,6,22,68719476736,4448.53,4555299,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,6874,1912384,445109,1467275,75.6516,61226428,64,64,5,1,45,536870912,63.9922,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,7111,2109358,496443,1612915,78.4111,67536844,64,64,5,1,45,536870912,63.9922,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,10424,3220404,504861,2715543,90.9205,103072640,64,64,20,1,45,536870912,64.0344,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,10456,3212519,504276,2708243,91.3461,102808116,64,64,20,1,45,536870912,64.0344,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,3428,1345580,464585,880995,74.1318,26491961,64,64,35,10,45,536870912,99.0815,405838,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,3503,1350376,465542,884834,70.7082,26525400,64,64,35,10,45,536870912,99.0815,405838,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,303130,97825055,9032301,88792754,95.6539,3103622214,64,64,150,6,45,34359738368,1208.53,4950136,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,8,313975,96481855,8908309,87573546,95.3821,3061110488,64,64,150,6,45,34359738368,1208.53,4950136,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,21156,6043057,590047,5453010,86.3023,186775592,64,64,20,3,45,5368709120,108.453,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,21062,6228220,613055,5615165,89.1286,192478129,64,64,20,3,45,5368709120,108.453,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,534373,149230387,4729960,144500427,90.1815,4764391540,64,64,300,10,45,137438953472,1136.38,4654632,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,8,560840,153139647,4830663,148308984,89.8872,4888825925,64,64,300,10,45,137438953472,1136.38,4654632,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,21755,5895873,1062457,4833416,88.1209,187334945,64,64,20,3,45,5368709120,231.597,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,8,19134,5867295,1061431,4805864,92.9305,186464573,64,64,20,3,45,5368709120,231.597,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,865659,149751372,9299694,140451678,80.1836,4774057641,64,64,85,5,45,34359738368,1142.56,4679944,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,883956,153996545,9748316,144248229,80.8557,4902662349,64,64,70,7,45,34359738368,1190.1,4874645,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,8,816071,147921487,9333391,138588096,83.7029,4709479593,64,64,70,7,45,34359738368,1190.1,4874646,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY diff --git a/Papers/ICS_2024/Results/Scaling/exp5_sssp_all.results b/Papers/ICS_2024/Results/Scaling/exp5_sssp_all.results deleted file mode 100644 index 38047a5..0000000 --- a/Papers/ICS_2024/Results/Scaling/exp5_sssp_all.results +++ /dev/null @@ -1,61 +0,0 @@ -network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,max_edges,vicinity,congestion_threshold_value,total_memory,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm -TORUS,OFF,ON,4,6037,2042758,452397,1590361,44.7501,130728672,128,128,5,1,90,1073741824,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,6296,2400129,528761,1871368,51.8805,153814398,128,128,5,1,90,1073741824,15.998,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,8362,5528915,985063,4543852,88.5802,353723864,128,128,20,1,90,1073741824,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,8933,6115181,1087116,5028065,90.898,391363430,128,128,20,1,90,1073741824,16.0086,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,3394,1817425,645857,1171568,59.9834,76456824,128,128,16,12,90,1073741824,25.4795,417456,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,3130,1891054,662491,1228563,59.6202,79561312,128,128,16,12,90,1073741824,25.4795,417456,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,692033,514898213,50043624,464854589,98.8233,32615016002,128,128,100,7,90,68719476736,309.886,5077171,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,8,646097,488084158,48156239,439927919,99.0266,30915709822,128,128,100,7,90,68719476736,309.886,5077171,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,25761,10037366,1117345,8920021,85.1986,618746397,128,128,20,3,90,10737418240,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,21810,10018514,1103208,8915306,85.4975,617501888,128,128,20,3,90,10737418240,27.1132,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,1657958,652573272,23101352,629471920,89.2953,41648913079,128,128,300,10,90,137438953472,284.096,4654632,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,1797739,751270585,25897777,725372808,86.5422,47938079467,128,128,230,12,90,137438953472,289.354,4740772,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,8,1176781,728064873,24008418,704056455,95.0544,46432139730,128,128,230,12,90,137438953472,289.354,4740772,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,32728,13645520,2643681,11001839,92.4992,865114102,128,128,20,3,90,10737418240,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,8,33337,14029684,2698855,11330829,88.5481,889536418,128,128,20,3,90,10737418240,57.8992,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,3772466,756553583,56812302,699741281,85.628,48130449067,128,128,85,7,90,68719476736,285.641,4679944,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,3633942,744088242,63348425,680739817,84.2399,46805206175,128,128,40,8,90,68719476736,360.148,5900669,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,8,3973749,728597051,55485800,673111251,87.4293,46388236585,128,128,85,7,90,68719476736,285.641,4679944,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,21984,1934834,450474,1484360,98.3502,15473348,16,16,5,1,11,134217728,1023.88,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,19986,1890871,441189,1449682,98.3407,15124575,16,16,5,1,11,134217728,1023.88,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,67267,5547385,1029354,4518031,98.6179,44363146,16,16,20,1,11,134217728,1024.55,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,15201,1509791,524637,985154,94.8231,7878815,16,16,150,5,11,2463817728,1561.34,399704,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,14917,1525558,531969,993589,96.8296,7946919,16,16,150,5,11,2463817728,1561.34,399704,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,6224046,477509206,46171453,431337753,99.2858,3792670396,16,16,400,4,11,34359738368,18975.3,4857689,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,110224,8461039,702822,7758217,97.9725,67637599,16,16,80,2,11,1598177280,1049.69,268720,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,10389847,546260685,16789065,529471620,94.7809,4369696868,16,16,1500,5,11,137438953472,16510.1,4226594,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,121849,9841528,1828203,8013325,98.1547,78728851,16,16,80,2,11,1598177280,3582.31,917071,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,6907970,523907742,33680336,490227406,99.4008,4190811698,16,16,300,4,11,34359738368,16576.6,4243603,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,11867,2026644,479067,1547577,95.7898,32448392,32,32,5,1,22,268435456,255.969,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,11827,2095735,498593,1597142,95.0378,33555867,32,32,5,1,22,268435456,255.969,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,33964,5672807,1056384,4616423,96.7481,90753350,32,32,20,1,22,268435456,256.138,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,32069,5507684,1020195,4487489,95.717,88100319,32,32,20,1,22,268435456,256.138,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,6664,1656878,592710,1064168,88.7824,16729960,32,32,90,6,22,882835456,390.969,400352,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,6408,1640086,583073,1057013,89.2505,16612478,32,32,90,6,22,882835456,390.969,400352,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,2727695,461616347,45742788,415873559,99.5597,7331999149,32,32,300,5,22,68719476736,4754.08,4868183,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,8,2512022,437685606,43296497,394389109,99.2105,6952735097,32,32,300,5,22,68719476736,4754.08,4868183,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,57286,9243171,771644,8471527,96.2552,147272902,32,32,50,2,22,3708354560,282.17,288942,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,53482,9037754,761289,8276465,97.1645,143918099,32,32,50,2,22,3708354560,282.169,288941,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,4542410,608168196,18676445,589491751,95.5743,9724289429,32,32,600,7,22,137438953472,4242.8,4344625,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,8,3888387,611645714,19082076,592563638,96.0702,9778053880,32,32,600,7,22,137438953472,4242.8,4344625,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,89480,13973641,2662213,11311428,96.1994,222226744,32,32,20,3,22,3708354560,926.387,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,8,74410,12774358,2454910,10319448,97.4739,203121327,32,32,20,3,22,3708354560,926.385,948618,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,3950287,626196452,40782640,585413812,97.7719,9986926241,32,32,85,5,22,68719476736,4570.25,4679941,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,8,3717017,591570699,39005828,552564871,97.4999,9433701267,32,32,85,5,22,68719476736,4570.26,4679949,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,4,6900,2137991,502743,1635248,82.7867,68380208,64,64,5,1,45,536870912,63.9922,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,8,6560,2044316,479750,1564566,81.4517,65440611,64,64,5,1,45,536870912,63.9922,262112,262111,1234877,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/amazon0302.edgelist,XY -TORUS,OFF,ON,4,16310,5513790,1010437,4503353,94.1755,176422710,64,64,20,1,45,536870912,64.0344,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,16341,5507981,1004728,4503253,94.8035,176352284,64,64,20,1,45,536870912,64.0344,262285,262144,2359296,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/Erdos-Renyi_directed_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,4074,1665905,593635,1072270,78.4027,33068943,64,64,35,10,45,536870912,99.0815,405838,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,8,4055,1668603,591765,1076838,75.98,33184395,64,64,35,10,45,536870912,99.0815,405838,399130,1216334,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/language.edgelist,XY -TORUS,OFF,ON,4,1266767,450970765,44320844,406649921,99.1965,14310628597,64,64,150,6,45,34359738368,1208.53,4950136,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,8,1179290,412890221,41932452,370957769,98.8966,13101833634,64,64,150,6,45,34359738368,1208.53,4950136,4847571,68993773,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/liveJournal.edgelist,XY -TORUS,OFF,ON,4,34040,10314560,1124102,9190458,89.641,318690539,64,64,20,3,45,5368709120,108.452,444221,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,8,38154,9972204,1086605,8885599,82.0041,308045289,64,64,20,3,45,5368709120,108.453,444222,262144,4718592,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Synthetic/RMAT_ef_9_v_18.edgelist,XY -TORUS,OFF,ON,4,2436186,771153079,24223826,746929253,95.6836,24612822215,64,64,300,10,45,137438953472,1136.38,4654632,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,8,2478753,766865344,24356656,742508688,94.8468,24476581801,64,64,300,10,45,137438953472,1136.38,4654632,4194303,128311436,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/kron22.edgelist,XY -TORUS,OFF,ON,4,52940,13620232,2586591,11033641,88.6915,432445847,64,64,20,3,45,5368709120,231.597,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,8,41065,12504313,2404706,10099607,94.6008,396955204,64,64,20,3,45,5368709120,231.597,948620,916428,5105039,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/Real/web-Google.edgelist,XY -TORUS,OFF,ON,4,3762880,729674610,50089842,679584768,92.0387,23232768755,64,64,85,5,45,34359738368,1142.56,4679944,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY -TORUS,OFF,ON,8,3286030,700817457,48040613,652776844,94.4176,22314254702,64,64,85,5,45,34359738368,1142.56,4679944,4206289,101311613,/N/u/bchandio/BigRed200/Research/git_repos/Datasets/muchiSim/wikipedia.edgelist,XY diff --git a/Papers/ICS_2024/Results/Scripts/job_cca_amazon.sh b/Papers/ICS_2024/Results/Scripts/job_cca_amazon.sh deleted file mode 100644 index 979ba9e..0000000 --- a/Papers/ICS_2024/Results/Scripts/job_cca_amazon.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -#SBATCH -A r00152 -#SBATCH -J bfs-ama-cca -#SBATCH -p general -#SBATCH -o amazon_%j.txt -#SBATCH -e amazon_%j.err -#SBATCH --mail-type=ALL -#SBATCH --mail-user=bchandio@iu.edu -#SBATCH --nodes=1 -#SBATCH --ntasks-per-node=128 -#SBATCH --time=00:20:00 -#SBATCH --mem=16G - -#Load any modules that your program needs -#module load modulename - -#change directory to: -cd /N/u/bchandio/BigRed200/Research/git_repos/benchmarks_CCA/Jan_5_ICS/Exp_1/amazon - -repository=/N/u/bchandio/BigRed200/Research/git_repos/CCA-Simulator -dataset=/N/u/bchandio/BigRed200/Research/git_repos/Datasets - -# Script to execute -exe=${repository}/Papers/ICS_2024/Runs/BFS/Experiment_1_Congestion/experiment_1.zsh - -#Define the list of number of processes -threads=128 -export OMP_NUM_THREADS=${threads} - -srun -N 1 -n 1 -c ${threads} ${exe} -r ${repository} -d ${dataset} -cc cc -cxx c++ -vicinity 1 -maxedge 5 -script run_bfs_amazon.zsh diff --git a/Papers/ICS_2024/Results/Scripts/query_scaling_results.py b/Papers/ICS_2024/Results/Scripts/query_scaling_results.py deleted file mode 100644 index fc9963f..0000000 --- a/Papers/ICS_2024/Results/Scripts/query_scaling_results.py +++ /dev/null @@ -1,48 +0,0 @@ -import pandas as pd -import sys -import os - -# Check if the command line argument for the CSV file is provided -if len(sys.argv) != 2: - print("Usage: python script.py ") - sys.exit(1) - -# Get the CSV file name from the command line argument -csv_file = sys.argv[1] - -# Read the CSV file into a Pandas DataFrame -try: - df = pd.read_csv(csv_file) -except FileNotFoundError: - print(f"File not found: {csv_file}") - sys.exit(1) - -# Get unique values of the 'graph_file' column -unique_graph_files = df['graph_file'].unique() - -# Iterate through unique 'graph_file' values and filter the DataFrame -for graph_file_condition in unique_graph_files: - # Filter rows based on conditions - filtered_df = df[(df['termination'] == 'OFF') & ( - df['graph_file'] == graph_file_condition)] - - # Print the filtered DataFrame - print(f"Filtered DataFrame for graph_file: {graph_file_condition}") - print(filtered_df) - - # Fetch particular columns for the filtered rows - selected_columns = ['dim_x', 'recv_buff_size', 'total_cycles', 'avg_cells_active_percent', 'operons_moved', 'max_edges', 'vicinity', 'actions_created', 'actions_performed', 'actions_false_pred', - 'avg_objects_per_cc', 'total_objects_created', 'graph_file', 'congestion_threshold_value', 'termination'] - result = filtered_df[selected_columns] - # Sort the result by 'dim_x' - result = result.sort_values(by='dim_x') - - # Print the result - print(result) - print("\n") # Add a separator between iterations - - # Refine the filename by removing all text before the last '/' - refined_filename = os.path.basename(graph_file_condition) - - # Write the sorted result to a CSV file - result.to_csv(f"{refined_filename}_strong_scaling.csv", index=False) diff --git a/Papers/ICS_2024/Results/Scripts/read_all_consolidate_results.py b/Papers/ICS_2024/Results/Scripts/read_all_consolidate_results.py deleted file mode 100755 index 3eaa249..0000000 --- a/Papers/ICS_2024/Results/Scripts/read_all_consolidate_results.py +++ /dev/null @@ -1,80 +0,0 @@ -import sys -import glob -import re - -import subprocess - -scripts_path = '/N/u/bchandio/BigRed200/Research/git_repos/benchmarks_CCA/Jan_5_ICS/scripts' -reader_script = scripts_path+'/read_cca_simulator_output.py' - - -def get_matching_file_names(patterns): - matching_files = [] - for pattern in patterns: - matching_files.extend(glob.glob(pattern)) - return matching_files - - -if __name__ == "__main__": - if len(sys.argv) < 3: - print("Usage: python script.py ") - sys.exit(1) - - file_patterns = sys.argv[2:] - consolidated_results_output_file = sys.argv[1] - matching_files = get_matching_file_names(file_patterns) - - if not matching_files: - print("No matching files found.") - else: - # print("Matching file names:") - print('consolidated_results_output_file: ', - consolidated_results_output_file) - # Write the consolidated results in consolidated_results_output_file - with open(consolidated_results_output_file, 'w') as file: - file.write('network,termination,throttle,recv_buff_size,total_cycles,actions_created,actions_performed,actions_false_pred,avg_cells_active_percent,operons_moved,dim_x,dim_y,max_edges,vicinity,congestion_threshold_value,total_memory,avg_objects_per_cc,total_objects_created,vertices,edges,graph_file,routing_algorithm\n') - - print('network, termination, throttle, recv_buff_size, total_cycles, actions_created, actions_performed, actions_false_pred, ' - 'avg_cells_active_percent, operons_moved, dim_x, dim_y, max_edges, vicinity, congestion_threshold_value, total_memory, ' - 'avg_objects_per_cc, total_objects_created, vertices, edges, graph_file, routing_algorithm') - - for file_name in matching_files: - # print(file_name) - # Use regular expression to tokenize the input string - tokens = re.split(r'_', file_name) - """ print(tokens) """ - # Assign tokens to variables - app = tokens[0] - shape = tokens[1] - dim_x = tokens[3] - dim_y = tokens[5] - graph = tokens[7] - vertices = tokens[9] - edges = tokens[11] - throttle = tokens[15] - recvbuff = tokens[17] - vicinity = tokens[19] - edges_max = tokens[22] - termimation = tokens[24] - network = tokens[26] - # network = "TORUS" - - # Print the values of the variables - print("App:", app) - print("square_x:", dim_x) - print("square_y:", dim_y) - print("graph:", graph) - print("vertices:", vertices) - print("edges:", edges) - print("throttle:", throttle) - print("recvbuff:", recvbuff) - print("vicinity:", vicinity) - print("edges_max:", edges_max) - print("termimation:", termimation) - print("network:", network) - - reader_to_call = ['python3', reader_script, - file_name, termimation, vicinity, edges_max, network, consolidated_results_output_file] - - # Run the script as a separate process with arguments - subprocess.call(reader_to_call) diff --git a/Papers/ICS_2024/Results/Scripts/read_cca_simulator_output.py b/Papers/ICS_2024/Results/Scripts/read_cca_simulator_output.py deleted file mode 100755 index 0528d41..0000000 --- a/Papers/ICS_2024/Results/Scripts/read_cca_simulator_output.py +++ /dev/null @@ -1,104 +0,0 @@ -""" -BSD 3-Clause License - -Copyright (c) 2023, Bibrak Qamar - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -""" - -# For argument parsing -import sys - -args = sys.argv - -output_file = args[1] -termination_switch = args[2] -vicinity = args[3] -max_edges = args[4] -network = args[5] - -consolidated_results_output_file = args[6] - -# Dimension-ordered (X-Y) routing -routing_algorithm = "XY" - -# open the file in read mode -with open(output_file, 'r') as file: - - # read the header line and discard it - header = file.readline() - - # read the next line and split it into variables - graph_file, vertices, edges, root_vertex = file.readline().strip().split() - - # convert vertices, edges and root_vertex to integers - vertices, edges, root_vertex = map(int, [vertices, edges, root_vertex]) - - # read the header line for the table and discard it - header = file.readline() - - # read the next line and split it into variables - shape, dim_x, dim_y, hx, hy, hdepth, hbandwidth_max, cells, compute_cells, sink_cells, memory, throttle, recv_buff_size = file.readline().strip().split() - - # convert dim_x, dim_y, cells, and memory to integers - dim_x, dim_y, hx, hy, hdepth, hbandwidth_max, cells, compute_cells, sink_cells, memory, throttle, recv_buff_size = map( - int, [dim_x, dim_y, hx, hy, hdepth, hbandwidth_max, cells, compute_cells, sink_cells, memory, throttle, recv_buff_size]) - - # read the header line for the table and discard it - header = file.readline() - congestion_policy, congestion_threshold_value = file.readline().strip().split() - - # read the header line for the table and discard it - header = file.readline() - - # read the next line and split it into variables - total_cycles, total_objects_created, total_actions_created, total_actions_performed, total_actions_false_pred, operons_moved = file.readline().strip().split() - - # convert cycles, invoked, performed and false_pred to integers - cycles, objects_created, actions_created, actions_performed, actions_false_pred, operons_moved = map( - int, [total_cycles, total_objects_created, total_actions_created, total_actions_performed, total_actions_false_pred, operons_moved]) - - # read the header line for the table and discard it - header = file.readline() - avg_objects_per_cc = file.readline().strip() - - # read the header line for the table and discard it - header = file.readline() - avg_cells_active_percent = file.readline().strip() - -# termination, throttle, recv_buf_size, total_cycles, total_actions, actions_performed_work, avg_active_cells_percent, dim_x, dimy, max_edges, vicinity, congestion_threshold, memory, avg_objects_per_cc, total_objects, vertices, edges, graph_file -ON_text = "ON" -OFF_text = "OFF" -throttle_text = ON_text -if (throttle == 0): - throttle_text = OFF_text - -print(network+','+termination_switch+','+throttle_text+','+str(recv_buff_size)+','+str(total_cycles)+','+str(actions_created)+','+str(actions_performed)+','+str(actions_false_pred)+','+str(avg_cells_active_percent)+','+str(operons_moved) + - ','+str(dim_x)+','+str(dim_y)+','+str(max_edges)+','+str(vicinity)+','+str(congestion_threshold_value)+','+str(memory)+',' + str(avg_objects_per_cc) + ','+str(total_objects_created) + ','+str(vertices)+',' + str(edges) + ',' + graph_file + ',' + routing_algorithm) - -with open(consolidated_results_output_file, 'a') as file: - file.write(network+','+termination_switch+','+throttle_text+','+str(recv_buff_size)+','+str(total_cycles)+','+str(actions_created)+','+str(actions_performed)+','+str(actions_false_pred)+','+str(avg_cells_active_percent)+','+str(operons_moved) + - ','+str(dim_x)+','+str(dim_y)+','+str(max_edges)+','+str(vicinity)+','+str(congestion_threshold_value)+','+str(memory)+',' + str(avg_objects_per_cc) + ','+str(total_objects_created) + ','+str(vertices)+',' + str(edges) + ',' + graph_file + ',' + routing_algorithm+'\n') diff --git a/Papers/ICS_2024/Runs/BFS/Experiment_1_Congestion/experiment_1.zsh b/Papers/ICS_2024/Runs/BFS/Experiment_1_Congestion/experiment_1.zsh deleted file mode 100755 index dcc3afe..0000000 --- a/Papers/ICS_2024/Runs/BFS/Experiment_1_Congestion/experiment_1.zsh +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/zsh - -# export OMP_NUM_THREADS=32 - -# Define possible values for each variable -THROTTLE_VALUES=("true") -RECVBUFFSIZE_VALUES=("4") -# TERMINATION_VALUES=("true" "false") -TERMINATION_VALUES=("false") -NETWORK_VALUES=("1") # 0: Mesh, 1: Torus - -CHIP_SIZE_X="128" -CHIP_SIZE_Y="128" - -# Function to calculate adjusted throttle time -calculate_throttle_time() { - local baseThrottleTime=$1 - local bufferSize=$2 - local throttleReductionFactor=$3 - - local adjustedThrottleTime - adjustedThrottleTime=$((baseThrottleTime / (bufferSize ** throttleReductionFactor))) - - # Convert to integer - adjustedThrottleTime=${adjustedThrottleTime%.*} - - # Return the adjusted throttle time - echo $adjustedThrottleTime -} - -# Function to calculate Pythagorean theorem -pythagorean() { - if [[ $# -ne 3 ]]; then - echo "Usage: $0 " - exit 1 - fi - - local side1=$1 - local side2=$2 - local netowork_type=$3 - - # Calculate the hypotenuse - local hypotenuse=$(echo "sqrt($side1^2 + $side2^2)" | bc -l) - - # Check if divide_flag is 1, then divide the hypotenuse by 2 - if [[ $netowork_type -eq 1 ]]; then - hypotenuse=$(echo "$hypotenuse / 2" | bc -l) - fi - - # Round up to the nearest integer using ceiling - local hypotenuse=$(echo "scale=0; $hypotenuse / 1" | bc -l) - - # Return the result - echo "$hypotenuse" -} -# REPO_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator" -# DATASET_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator/Papers/IPDPS_2024/Datasets" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -r) - REPO_PATH="$2" - shift 2 - ;; - -d) - DATASET_PATH="$2" - shift 2 - ;; - -cc) - CC_EXE="$2" - shift 2 - ;; - -cxx) - CXX_EXE="$2" - shift 2 - ;; - -vicinity) - VICINITY_VAL="$2" - shift 2 - ;; - -maxedge) - MAX_EDGE="$2" - shift 2 - ;; - -script) - SCRIPT_TO_RUN="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search" -# Create a function to run cmake with the given parameters -run_cmake() { - CC="$CC_EXE" CXX="$CXX_EXE" cmake -S "$AAP_PATH" -B build -D ACTIVE_PERCENT=false -D ANIMATION=false -D VICINITY="$VICINITY_VAL" -D MAXEDGESPERVERTEX="$MAX_EDGE" -D THROTTLE="$1" -D RECVBUFFSIZE="$2" -D TERMINATION="$3" -D THROTTLE_CONGESTION_THRESHOLD="$4" - cmake --build build -j 6 -} - -# Nested loops to iterate through all combinations -for THROTTLE in "${THROTTLE_VALUES[@]}"; do - for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do - for TERMINATION in "${TERMINATION_VALUES[@]}"; do - for NETWORK in "${NETWORK_VALUES[@]}"; do - - ThrottleTime=$(pythagorean $CHIP_SIZE_X $CHIP_SIZE_X $NETWORK) - - # Calculate the adjusted throttle time based on the buffer size. - # baseThrottleTime=181 # Throttle time when buffer size is 1 - # throttleReductionFactor=0.2 # Adjust this factor as needed - # adjustedThrottleTime=$(calculate_throttle_time $baseThrottleTime $RECVBUFFSIZE $throttleReductionFactor) - #adjustedThrottleTime=181 - - echo "ThrottleTime: $ThrottleTime" - # Run cmake with the current combination of values - run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" "$ThrottleTime" - "$REPO_PATH/Papers/ICS_2024/Runs/BFS/$SCRIPT_TO_RUN" -hx "$CHIP_SIZE_X" -hy "$CHIP_SIZE_Y" -dataset "$DATASET_PATH" -network "$NETWORK" - done - done - done -done diff --git a/Papers/ICS_2024/Runs/BFS/Experiment_2_Allocation/experiment_2.zsh b/Papers/ICS_2024/Runs/BFS/Experiment_2_Allocation/experiment_2.zsh deleted file mode 100755 index 449fda1..0000000 --- a/Papers/ICS_2024/Runs/BFS/Experiment_2_Allocation/experiment_2.zsh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/zsh - -# export OMP_NUM_THREADS=32 - -# Define possible values for each variable -THROTTLE_VALUES=("true") -RECVBUFFSIZE_VALUES=("4") -TERMINATION_VALUES=("false") - -# REPO_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator" -# DATASET_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator/Papers/IPDPS_2024/Datasets" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -r) - REPO_PATH="$2" - shift 2 - ;; - -d) - DATASET_PATH="$2" - shift 2 - ;; - -cc) - CC_EXE="$2" - shift 2 - ;; - -cxx) - CXX_EXE="$2" - shift 2 - ;; - -vicinity) - VICINITY_VAL="$2" - shift 2 - ;; - -maxedge) - MAX_EDGE="$2" - shift 2 - ;; - -script) - SCRIPT_TO_RUN="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - - -AAP_PATH="$REPO_PATH/Applications/Breadth_First_Search" -# Create a function to run cmake with the given parameters -run_cmake() { - CC="$CC_EXE" CXX="$CXX_EXE" cmake -S "$AAP_PATH" -B build -D ANIMATION=false -D VICINITY="$VICINITY_VAL" -D MAXEDGESPERVERTEX="$MAX_EDGE" -D THROTTLE="$1" -D RECVBUFFSIZE="$2" -D TERMINATION="$3" -D THROTTLE_CONGESTION_THRESHOLD=181 - cmake --build build -j 6 -} - -# Nested loops to iterate through all combinations -for THROTTLE in "${THROTTLE_VALUES[@]}"; do - for RECVBUFFSIZE in "${RECVBUFFSIZE_VALUES[@]}"; do - for TERMINATION in "${TERMINATION_VALUES[@]}"; do - # Run cmake with the current combination of values - run_cmake "$THROTTLE" "$RECVBUFFSIZE" "$TERMINATION" - "$REPO_PATH/Papers/IPDPS_2024/Runs/BFS/$SCRIPT_TO_RUN" -dataset "$DATASET_PATH" - done - done -done diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_erdos_16.zsh b/Papers/ICS_2024/Runs/BFS/run_bfs_erdos_16.zsh deleted file mode 100755 index 1c09a61..0000000 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_erdos_16.zsh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# Define other command-line arguments -GRAPH_TYPE="Erdos" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="27460" -MEMORY_CC="20480" -HX="128" -HY="128" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/Synthetic/Erdos-Renyi_directed_ef_8_v_16.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_erdos_small.zsh b/Papers/ICS_2024/Runs/BFS/run_bfs_erdos_small.zsh deleted file mode 100755 index bc921b1..0000000 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_erdos_small.zsh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# Define other command-line arguments -GRAPH_TYPE="Erdos" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="193" -MEMORY_CC="10240" -HX="20" -HY="20" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/Synthetic/tmp/Erdos-Renyi_directed_ef_8_v_9.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_25.zsh b/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_25.zsh deleted file mode 100755 index 3e93c3a..0000000 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_rmat_25.zsh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - - -# Define other command-line arguments -GRAPH_TYPE="RMAT" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="0" -MEMORY_CC="8388608" -HX="128" -HY="128" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/muchiSim/kron25.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY diff --git a/Papers/ICS_2024/Runs/BFS/run_bfs_web_google.zsh b/Papers/ICS_2024/Runs/BFS/run_bfs_web_google.zsh deleted file mode 100755 index 2c40e98..0000000 --- a/Papers/ICS_2024/Runs/BFS/run_bfs_web_google.zsh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# Define other command-line arguments -GRAPH_TYPE="webGoogle" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="0" #"506742" -MEMORY_CC="102400" -HX="128" -HY="128" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/Real/web-Google.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY diff --git a/Papers/ICS_2024/Runs/README.md b/Papers/ICS_2024/Runs/README.md deleted file mode 100644 index 6a8522f..0000000 --- a/Papers/ICS_2024/Runs/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Scripts used to launch experiments -This directory contains scripts that were used to launch experiments. Please adjust the various parameters accordingly. -There is also an assortment of slurm batch job scripts. You may use them. But adjust them according to your environment. diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_16.zsh b/Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_16.zsh deleted file mode 100755 index 1c09a61..0000000 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_16.zsh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# Define other command-line arguments -GRAPH_TYPE="Erdos" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="27460" -MEMORY_CC="20480" -HX="128" -HY="128" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/Synthetic/Erdos-Renyi_directed_ef_8_v_16.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_small.zsh b/Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_small.zsh deleted file mode 100755 index bc921b1..0000000 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_erdos_small.zsh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# Define other command-line arguments -GRAPH_TYPE="Erdos" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="193" -MEMORY_CC="10240" -HX="20" -HY="20" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/Synthetic/tmp/Erdos-Renyi_directed_ef_8_v_9.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_16.zsh b/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_16.zsh deleted file mode 100755 index aecd2b8..0000000 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_16.zsh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - -# Define the input file path -# DATASET_PATH="/Users/bchandio/Documents/work/PhD/git_repos/CCA-Simulator/Papers/IPDPS_2024/Datasets" - -# Define other command-line arguments -GRAPH_TYPE="RMAT" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="0" -MEMORY_CC="24576" -HX="128" -HY="128" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/Synthetic/RMAT_ef_8_v_16.edgelist" - -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_25.zsh b/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_25.zsh deleted file mode 100755 index 3e93c3a..0000000 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_rmat_25.zsh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/BFS_CCASimulator" - - -# Define other command-line arguments -GRAPH_TYPE="RMAT" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="0" -MEMORY_CC="8388608" -HX="128" -HY="128" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/muchiSim/kron25.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK -shuffle $VERIFY diff --git a/Papers/ICS_2024/Runs/SSSP/run_sssp_web_google.zsh b/Papers/ICS_2024/Runs/SSSP/run_sssp_web_google.zsh deleted file mode 100755 index 85b4949..0000000 --- a/Papers/ICS_2024/Runs/SSSP/run_sssp_web_google.zsh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/zsh - -# Define the path to the executable -EXECUTABLE="./build/SSSP_CCASimulator" - -# Define other command-line arguments -GRAPH_TYPE="webGoogle" -OUTPUT_DIR="." -SHAPE="square" -ROOT_NODE="0" #"506742" -MEMORY_CC="102400" -HX="128" -HY="128" -HDEPTH="0" -HB="0" -ROUTE="0" -NETWORK="1" # 0: Mesh, 1: Torus -VERIFY="" # "-verify" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -hx) - HX="$2" - shift 2 - ;; - -hy) - HY="$2" - shift 2 - ;; - -m) - MEMORY_CC="$2" - shift 2 - ;; - -dataset) - DATASET_PATH="$2" - shift 2 - ;; - -network) - NETWORK="$2" - shift 2 - ;; - *) - echo "Unknown argument: $1" - exit 1 - ;; - esac -done - -INPUT_FILE="$DATASET_PATH/Real/web-Google.edgelist" -# Run the command -$EXECUTABLE -f $INPUT_FILE -g $GRAPH_TYPE -od $OUTPUT_DIR -s $SHAPE -root $ROOT_NODE -m $MEMORY_CC -hx $HX -hy $HY -hdepth $HDEPTH -hb $HB -route $ROUTE -mesh $NETWORK $VERIFY diff --git a/Source/ComputeCell.cpp b/Source/ComputeCell.cpp index c02bb06..e2cc92f 100644 --- a/Source/ComputeCell.cpp +++ b/Source/ComputeCell.cpp @@ -670,6 +670,22 @@ ComputeCell::prepare_a_cycle(std::vector>& CCA_chip) (this->current_recv_channel_to_start_a_cycle + 1) % this->number_of_neighbors; } +auto +ComputeCell::decrement_CPI() -> bool +{ + if (this->pending_instructions == 0) { + return false; + } + this->pending_instructions--; + return true; +} + +void +ComputeCell::apply_CPI(u_int32_t cpi) +{ + this->pending_instructions += cpi; +} + void ComputeCell::run_a_computation_cycle(std::vector>& CCA_chip, void* function_events) @@ -680,6 +696,11 @@ ComputeCell::run_a_computation_cycle(std::vector>& CCA_chi return; } + // First check if there are any pending CPIs that will take this cycle + if (this->decrement_CPI()) { + return; + } + // A single compute cell can perform work and communication in parallel in a single cycle // This function performs work if there is any.