#define MAILBOX_NAME_SIZE 10
#define NEIGHBOURS_COUNT GRID_SIZE - 1
-/*
- * The job sent to every node
- */
+/* The job sent to every node */
typedef struct s_node_job{
int row;
int col;
int nodes_in_col[NEIGHBOURS_COUNT];
xbt_matrix_t A;
xbt_matrix_t B;
-} s_node_job_t, *node_job_t;
+} s_node_job_t;
-/*
- * Structure for recovering results
- */
+typedef s_node_job_t *node_job_t;
+
+/* Structure for recovering results */
typedef struct s_result {
int row;
int col;
xbt_matrix_t sC;
-} s_result_t, *result_t;
+} s_result_t;
+
+typedef s_result_t *result_t;
int node(int argc, char **argv);
static void create_jobs(xbt_matrix_t A, xbt_matrix_t B, node_job_t *jobs);
int node(int argc, char **argv)
{
char my_mbox[MAILBOX_NAME_SIZE];
- node_job_t myjob, jobs[GRID_NUM_NODES];
+ node_job_t myjob;
+ node_job_t jobs[GRID_NUM_NODES];
xbt_matrix_t A = NULL;
xbt_matrix_t B = NULL;
xbt_matrix_t C = NULL;
int main(int argc, char *argv[])
{
- xbt_os_timer_t timer = xbt_os_timer_new();
-
MSG_init(&argc, argv);
- MSG_create_environment(argv[1]);
+ const char *platform = "../../platforms/cluster.xml";
+ if (argc > 1)
+ platform = argv[1];
+ MSG_create_environment(platform);
MSG_function_register("node", node);
for(int i = 0 ; i< 9; i++) {
xbt_free(hostname);
}
- xbt_os_cputimer_start(timer);
msg_error_t res = MSG_main();
- xbt_os_cputimer_stop(timer);
- XBT_CRITICAL("Simulated time: %g", MSG_get_clock());
+ XBT_INFO("Simulated time: %g", MSG_get_clock());
return res != MSG_OK;
}
jobs[node]->row = row;
jobs[node]->col = col;
- /* Compute who are the nodes in the same row and column */
- /* than the node receiving this job */
- for (int j = 0, k = 0; j < GRID_SIZE; j++) {
+ /* Compute who are the nodes in the same row and column than the node receiving this job */
+ int k=0;
+ for (int j = 0; j < GRID_SIZE; j++) {
if (node != (GRID_SIZE * row) + j) {
jobs[node]->nodes_in_row[k] = (GRID_SIZE * row) + j;
k++;
}
}
- for (int j = 0, k = 0; j < GRID_SIZE; j++) {
+ k=0;
+ for (int j = 0; j < GRID_SIZE; j++) {
if (node != (GRID_SIZE * j) + col) {
jobs[node]->nodes_in_col[k] = (GRID_SIZE * j) + col;
k++;
jobs[node]->B =
xbt_matrix_new_sub(B, NODE_MATRIX_SIZE, NODE_MATRIX_SIZE, NODE_MATRIX_SIZE * row, NODE_MATRIX_SIZE * col, NULL);
- if (++col >= GRID_SIZE){
+ col++;
+ if (col >= GRID_SIZE){
col = 0;
row++;
}