Skip to content
Snippets Groups Projects
Commit 55ebe196 authored by omarcelh's avatar omarcelh
Browse files

Still debugging, not yet done

parent b92f7bb1
Branches
No related merge requests found
No preview for this file type
...@@ -14,27 +14,42 @@ int main(int argc, char** argv){ ...@@ -14,27 +14,42 @@ int main(int argc, char** argv){
int i; int i;
int n; int n;
srand(time(NULL)); srand(time(NULL));
n = rand() % 10 + 1; //n = rand() % 10 + 1;
n=1;
printf("%d number of elements\n", n); printf("%d number of elements\n", n);
int input[n], result[n]; int input[n];
int c; int c;
for (c = 0; c < n; c++) { for (c = 0; c < n; c++) {
input[c] = abs(rand() % 100); input[c] = abs(rand() % 100);
printf("%d. %d\n", c, input[c]);
} }
int* bucketsNEff = malloc (sizeof(int) * numtasks); int min = input[0];
int max = input[0];
for (c = 0; c < n; c++) {
if(input[c] < min) {
min = input[i];
}
if(input[c] > max) {
max = input[i];
}
}
int bucketsNEff[numtasks];
int j; int j;
for(j=0; j<numtasks; j++){ for(j=1; j<numtasks; j++){
bucketsNEff[j] = 0; bucketsNEff[j] = 0;
} }
for(i=0; i<n; i++){ for(i=0; i<n; i++){
int inc = 100/(numtasks-1); int inc = max/(numtasks-1);
printf("Inc: %d\n", inc);
int iteration = 1; int iteration = 1;
int k, p = 0; int k;
for(k=inc; k<100; k+=inc){ int p = 0; //false
for(k=inc; k<=max; k+=inc){
if(input[i] <= k){ if(input[i] <= k){
bucketsNEff[iteration]++; bucketsNEff[iteration]++;
p = 1; p = 1;
...@@ -42,20 +57,23 @@ int main(int argc, char** argv){ ...@@ -42,20 +57,23 @@ int main(int argc, char** argv){
} }
iteration++; iteration++;
} }
if(!p){ if(!p){
bucketsNEff[iteration-1]++; bucketsNEff[iteration-1]++;
} }
} }
for(i=0; i<numtasks; i++){ for(i=0; i<numtasks; i++){
printf("Bucket-%d: %d\n", i, bucketsNEff[i]);
MPI_Send(&input[i], 1, MPI_INT, i, 1, MPI_COMM_WORLD); MPI_Send(&input[i], 1, MPI_INT, i, 1, MPI_COMM_WORLD);
} }
printf("After send\n");
for(i=0; i<n; i++){ for(i=0; i<n; i++){
int inc = 100/(numtasks-1); int inc = max/(numtasks-1);
int iteration = 1; int iteration = 1;
int k, p = 0; int k, p = 0;
for(k=inc; k<100; k+=inc){ for(k=inc; k<=max; k+=inc){
if(input[i] <= k){ if(input[i] <= k){
MPI_Send(&input[i], 1, MPI_INT, iteration, 2, MPI_COMM_WORLD); MPI_Send(&input[i], 1, MPI_INT, iteration, 2, MPI_COMM_WORLD);
p = 1; p = 1;
...@@ -68,11 +86,14 @@ int main(int argc, char** argv){ ...@@ -68,11 +86,14 @@ int main(int argc, char** argv){
} }
} }
printf("After send 2\n");
int lastIndex = 0; int lastIndex = 0;
int indexi = 0; int indexi = 0;
printf("A\n"); printf("A");
for(i=1; i<numtasks; i++){ for(i=1; i<numtasks; i++){
printf("Terima\n");
int receiver[bucketsNEff[i]]; int receiver[bucketsNEff[i]];
MPI_Recv(&receiver[0], bucketsNEff[i], MPI_INT, i, 3, MPI_COMM_WORLD, &stat); MPI_Recv(&receiver[0], bucketsNEff[i], MPI_INT, i, 3, MPI_COMM_WORLD, &stat);
if(lastIndex = 0){ if(lastIndex = 0){
...@@ -84,6 +105,9 @@ int main(int argc, char** argv){ ...@@ -84,6 +105,9 @@ int main(int argc, char** argv){
indexi++; indexi++;
} }
} }
for(i=0; i<n; i++){
printf("%d ", input[i]);
}
printf("A\n"); printf("A\n");
} else { } else {
...@@ -113,8 +137,6 @@ int main(int argc, char** argv){ ...@@ -113,8 +137,6 @@ int main(int argc, char** argv){
MPI_Send(arr, bucketNEff, MPI_INT, 0, 3, MPI_COMM_WORLD); MPI_Send(arr, bucketNEff, MPI_INT, 0, 3, MPI_COMM_WORLD);
} }
MPI_Finalize(); MPI_Finalize();
return 0; return 0;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment