Skip to content
Snippets Groups Projects
Commit 01f8b2de authored by lykos98's avatar lykos98
Browse files

added rma implementation of H1 still working on crashes when using big dataset

parent 0b1b122b
No related branches found
No related tags found
No related merge requests found
......@@ -1788,8 +1788,6 @@ void mpi_ngbh_search(global_context_t* ctx, datapoint_info_t* dp_info, top_kdtre
}
}
HERE
/* sendout results */
/*
......@@ -2665,8 +2663,10 @@ datapoint_info_t find_possibly_halo_datapoint_rma(global_context_t* ctx, idx_t i
}
else
{
idx_t i = idx - ctx -> rank_idx_start[owner];
datapoint_info_t tmp_dp;
#pragma omp critical
{
idx_t i = idx - ctx -> rank_idx_start[owner];
MPI_Request request;
MPI_Status status;
......@@ -2674,6 +2674,8 @@ datapoint_info_t find_possibly_halo_datapoint_rma(global_context_t* ctx, idx_t i
i * sizeof(datapoint_info_t), sizeof(datapoint_info_t), MPI_BYTE, win_datapoints, &request);
MPI_Wait(&request, MPI_STATUS_IGNORE);
}
return tmp_dp;
}
}
......@@ -3453,6 +3455,8 @@ clusters_t Heuristic1_rma(global_context_t *ctx, int verbose)
*
* args:
*/
HERE
datapoint_info_t* dp_info = ctx -> local_datapoints;
idx_t n = ctx -> local_n_points;
......@@ -3494,6 +3498,7 @@ clusters_t Heuristic1_rma(global_context_t *ctx, int verbose)
1, MPI_INFO_NULL, ctx -> mpi_communicator, &win_datapoints);
MPI_Win_fence(0, win_datapoints);
MPI_Win_lock_all(0, win_datapoints);
HERE
#if defined(THREAD_FUNNELED)
#else
......@@ -3527,9 +3532,14 @@ clusters_t Heuristic1_rma(global_context_t *ctx, int verbose)
if(dp_info[i].is_center)
{
//lu_dynamic_array_pushBack(&all_centers, dp_info[i].array_idx);
#pragma omp critical
{
lu_dynamic_array_pushBack(&all_centers, i);
}
}
}
HERE
if(verbose)
{
......@@ -3596,7 +3606,7 @@ clusters_t Heuristic1_rma(global_context_t *ctx, int verbose)
if(j_point.is_center && i_point.g > j_point.g)
{
//#pragma omp critical
#pragma omp critical
{
int owner = foreign_owner(ctx, jidx);
idx_t jpos = jidx - ctx -> rank_idx_start[owner];
......@@ -3626,6 +3636,8 @@ clusters_t Heuristic1_rma(global_context_t *ctx, int verbose)
}
MPI_Win_fence(0, win_to_remove_mask);
MPI_Barrier(ctx -> mpi_communicator);
HERE
/* populate the usual arrays */
for(idx_t p = 0; p < all_centers.count; ++p)
......@@ -3668,6 +3680,9 @@ clusters_t Heuristic1_rma(global_context_t *ctx, int verbose)
break;
}
}
HERE
MPI_Win_free(&win_to_remove_mask);
free(to_remove_mask);
if(verbose)
......@@ -3834,6 +3849,8 @@ clusters_t Heuristic1_rma(global_context_t *ctx, int verbose)
MPI_Win_fence(0, win_datapoints);
MPI_Win_free(&win_datapoints);
MPI_Barrier(ctx -> mpi_communicator);
if(verbose)
{
clock_gettime(CLOCK_MONOTONIC, &finish);
......@@ -4743,7 +4760,7 @@ void simulate_master_read_and_scatter(int dims, size_t n, global_context_t *ctx)
// data = read_data_file(ctx,"../norm_data/std_g2980844_091_0000",MY_TRUE);
/* 1M points ca.*/
data = read_data_file(ctx,"../norm_data/std_LR_091_0001",MY_TRUE);
// data = read_data_file(ctx,"../norm_data/std_LR_091_0001",MY_TRUE);
/* BOX */
// data = read_data_file(ctx,"../norm_data/std_Box_256_30_092_0000",MY_TRUE);
......@@ -4753,15 +4770,15 @@ void simulate_master_read_and_scatter(int dims, size_t n, global_context_t *ctx)
// data = read_data_file(ctx,"../norm_data/std_g0144846_Me14_091_0001",MY_TRUE);
//88M
// data = read_data_file(ctx,"../norm_data/std_g5503149_091_0000",MY_TRUE);
data = read_data_file(ctx,"../norm_data/std_g5503149_091_0000",MY_TRUE);
//
//34 M
// data = read_data_file(ctx,"../norm_data/std_g1212639_091_0001",MY_TRUE);
ctx->dims = 5;
ctx -> n_points = 5 * 100000;
//ctx->n_points = ctx->n_points / ctx->dims;
//ctx -> n_points = 5 * 100000;
ctx->n_points = ctx->n_points / ctx->dims;
//ctx->n_points = (ctx->n_points * 5) / 10;
// ctx -> n_points = ctx -> world_size * 1000;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment