Skip to content
Snippets Groups Projects
Commit 9721a968 authored by bmusuko's avatar bmusuko
Browse files

move distance and visited declaration

parent ae2ecc64
Branches
No related merge requests found
......@@ -34,10 +34,13 @@ void printGraph(int n, int graph[n]){
}
__device__
void djikstra(int graph[],int start,int distance[],int visited[],int n,int answer[]){
void djikstra(int graph[],int start,int n,int answer[]){
int node;
int temp_dist;
int *distance,*visited;
distance = malloc(n*sizeof(int));
visited = malloc(n*sizeof(int));
int min_dist[2]; // node and its distance
min_dist[0] = -1;
min_dist[1] = INFINITY;
......@@ -78,18 +81,19 @@ void djikstra(int graph[],int start,int distance[],int visited[],int n,int answe
}
for(int i=0;i<n;i++){
answer[start*n+i] = distance[i];
}
free(distance);
free(visited);
}
__global__
void djikstra_cuda(int graph[]int distance[],int visited[],int n,int answer[])
void djikstra_cuda(int graph[],int n,int answer[])
{
int index = blockIdx.x * blockDim.x + threadIdx.x;
int stride = blockDim.x * gridDim.x;
for (int i = index; i < n; i += stride){
djikstra(graph,i,distance,visited[],n,answer);
}
djikstra(graph,i,n,answer);
}
}
int main(int argc, char** argv){
......@@ -111,8 +115,6 @@ int main(int argc, char** argv){
int *graph,*distance,*visited, *answer;
graph = malloc(n*n*sizeof(int));
distance = malloc(n*sizeof(int));
visited = malloc(n*sizeof(int));
answer = malloc(n*n*sizeof(int));
createGraph(n,graph);
fprintf(output_file, "GRAPH:\n");
......@@ -128,7 +130,7 @@ int main(int argc, char** argv){
int numBlocks = (n + blockSize - 1) / blockSize;
gettimeofday(&st,NULL);
djikstra_cuda<<<numBlocks, blockSize>>>>(graph,distance,visited,n,answer);
djikstra_cuda<<<numBlocks, blockSize>>>>(graph,n,answer);
gettimeofday(&et,NULL);
unsigned long long int elapsed = ((et.tv_sec - st.tv_sec) * 1000000) + (et.tv_usec - st.tv_usec);
printf("Djikstra total time: %llu micro seconds\n",elapsed);
......
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