From 253b267f1cee377a834860fb4deac54ef9a78b7a Mon Sep 17 00:00:00 2001 From: Logan Hunt Date: Mon, 6 Dec 2021 21:44:51 -0700 Subject: [PATCH] MPI --- cuda-global/gol | Bin 709816 -> 709816 bytes cuda-global/src/game.cu | 2 +- cuda-global/src/main.cu | 18 ++-- mpi/Makefile | 21 ++++ mpi/build/.gitignore | 2 + mpi/gol | Bin 0 -> 155352 bytes mpi/include/create_grid.h | 12 +++ mpi/include/file.h | 11 ++ mpi/include/game.h | 19 ++++ mpi/output/.gitignore | 2 + mpi/src/create_grid.c | 38 +++++++ mpi/src/file.c | 17 +++ mpi/src/game.c | 56 ++++++++++ mpi/src/main.c | 220 ++++++++++++++++++++++++++++++++++++++ openmp/build/.gitignore | 2 + openmp/gol | 1 + serial/build/.gitignore | 2 + serial/gol | 1 + 18 files changed, 414 insertions(+), 10 deletions(-) create mode 100644 mpi/Makefile create mode 100644 mpi/build/.gitignore create mode 100755 mpi/gol create mode 100644 mpi/include/create_grid.h create mode 100644 mpi/include/file.h create mode 100644 mpi/include/game.h create mode 100644 mpi/output/.gitignore create mode 100644 mpi/src/create_grid.c create mode 100644 mpi/src/file.c create mode 100644 mpi/src/game.c create mode 100644 mpi/src/main.c create mode 100644 openmp/build/.gitignore create mode 120000 openmp/gol create mode 100644 serial/build/.gitignore create mode 120000 serial/gol diff --git a/cuda-global/gol b/cuda-global/gol index 3c94c50eba78ed99086e1147b6fe9834fb23c517..4fb8b817c9ad9dba6673d5dec890232da52a50c7 100755 GIT binary patch delta 107699 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�Z%cA^6E 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 hsK09-G>g3F}3Qrb@-$Bs44(<3YJ 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 diff --git a/cuda-global/src/game.cu b/cuda-global/src/game.cu index 9021916..b0b5f61 100644 --- a/cuda-global/src/game.cu +++ b/cuda-global/src/game.cu @@ -5,7 +5,7 @@ __device__ int neighbors(struct GAME game, int x, int y) { for (int dy = -1; dy <= 1; dy++) { for (int dx = -1; dx <= 1; dx++) { - if (!(dx == 0 && dy == 0) && (x+dx) > 0 && (y+dy) > 0 && (x+dx) < game.width+(game.padding*2) && (y+dy) < game.height+(game.padding*2)) { + if (!(dx == 0 && dy == 0) && (x+dx) >= 0 && (y+dy) >= 0 && (x+dx) < game.width+(game.padding*2) && (y+dy) < game.height+(game.padding*2)) { if (game.grid[(y+dy) * (game.width+game.padding*2) + (x+dx)]) { n++; } diff --git a/cuda-global/src/main.cu b/cuda-global/src/main.cu index 1aea812..f906b2a 100644 --- a/cuda-global/src/main.cu +++ b/cuda-global/src/main.cu @@ -18,7 +18,7 @@ */ #define BLOCK 32 #define PADDING 10 -//#define VERBOSE 1 +#define VERBOSE 1 #define SEED 100 // gpuErrchk source: https://stackoverflow.com/questions/14038589/what-is-the-canonical-way-to-check-for-errors-using-the-cuda-runtime-api @@ -39,7 +39,7 @@ void simulate(int argc, char** argv) { char* filename; struct GAME game; game.padding = PADDING; - int iterations, log_each_step, block_size; + int iterations, log_each_step; if (argc == 7) { filename = argv[2]; game.width = atoi(argv[3]); @@ -47,7 +47,7 @@ void simulate(int argc, char** argv) { iterations = atoi(argv[5]); log_each_step = atoi(argv[6]); } else { - printf("Usage: ./gol simulate \n"); + printf("Usage: ./gol simulate \n"); filename = "random"; game.height = 10; game.width = 10; @@ -69,10 +69,10 @@ void simulate(int argc, char** argv) { char iteration_file[1024]; unsigned char* grid_d; - unsigned char* newGrid_d; + unsigned char* newGrid; gpuErrchk(cudaMalloc(&grid_d, size)); gpuErrchk(cudaMemcpy(grid_d, game.grid, size, cudaMemcpyHostToDevice)); - gpuErrchk(cudaMalloc(&newGrid_d, size)); + gpuErrchk(cudaMalloc(&newGrid, size)); unsigned char* grid_h = (unsigned char*)malloc(size); unsigned char* temp; @@ -92,15 +92,15 @@ void simulate(int argc, char** argv) { for (int i = 0; i <= iterations; i++) { if (i > 0) { cudaEventRecord(startLife); - next<<>>(game, newGrid_d); + next<<>>(game, newGrid); cudaEventRecord(stopLife); cudaEventSynchronize(stopLife); cudaEventElapsedTime(&localTime, startLife, stopLife); timeComputingLife += localTime/1000; temp = game.grid; - game.grid = newGrid_d; - newGrid_d = temp; + game.grid = newGrid; + newGrid = temp; } if (log_each_step) { gpuErrchk(cudaMemcpy(grid_h, game.grid, size, cudaMemcpyDeviceToHost)); @@ -125,7 +125,7 @@ void simulate(int argc, char** argv) { clock_t totalEnd = clock(); printf("\n===Timing===\nTime computing life: %f\nClock time: %f\n", timeComputingLife, ((double)totalEnd - (double)totalStart)/CLOCKS_PER_SEC); - cudaFree(&newGrid_d); + cudaFree(&newGrid); cudaFree(&grid_d); cudaFree(&game.grid); free(grid_h); diff --git a/mpi/Makefile b/mpi/Makefile new file mode 100644 index 0000000..0a464a4 --- /dev/null +++ b/mpi/Makefile @@ -0,0 +1,21 @@ +.DEFAULT_GOAL := all + +INCLUDES = -I include/ +FLAGS= -std=c99 + +game.o: include/game.h src/game.c + mpicc -c src/game.c $(INCLUDES) $(FLAGS) -o build/game.o + +file.o: game.o include/file.h src/file.c + mpicc -c src/file.c $(INCLUDES) $(FLAGS) -o build/file.o + +create_grid.o: file.o game.o include/create_grid.h src/create_grid.c + mpicc -c src/create_grid.c $(INCLUDES) $(FLAGS) -o build/create_grid.o + +gol: game.o file.o create_grid.o + mpicc $(INCLUDES) $(FLAGS) -o gol build/game.o build/file.o build/create_grid.o src/main.c + +clean: + $(RM) build/*.o gol output/*.bin + +all: gol diff --git a/mpi/build/.gitignore b/mpi/build/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/mpi/build/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/mpi/gol b/mpi/gol new file mode 100755 index 0000000000000000000000000000000000000000..f7d934c6acd10b5827f6fb91cf88f58ec5e3ecb3 GIT binary patch literal 155352 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 W|5~r&vUnc-Q?GdX&j$oS*8CST(3g+^ literal 0 HcmV?d00001 diff --git a/mpi/include/create_grid.h b/mpi/include/create_grid.h new file mode 100644 index 0000000..45ac891 --- /dev/null +++ b/mpi/include/create_grid.h @@ -0,0 +1,12 @@ +#include +#include +#include "file.h" +#include "game.h" + +#ifndef CREATE_GRID_H +#define CREATE_GRID_H + +void print_grid(struct GAME* game); +void create_grid(int argc, char** argv); + +#endif // CREATE_GRID_H diff --git a/mpi/include/file.h b/mpi/include/file.h new file mode 100644 index 0000000..b2db380 --- /dev/null +++ b/mpi/include/file.h @@ -0,0 +1,11 @@ +#include "game.h" +#include +#include + +#ifndef FILE_H +#define FILE_H + +void read_in(char* filename, struct GAME* game); +void write_out(char* filename, struct GAME* game); + +#endif //FILE_H diff --git a/mpi/include/game.h b/mpi/include/game.h new file mode 100644 index 0000000..135fd8a --- /dev/null +++ b/mpi/include/game.h @@ -0,0 +1,19 @@ +#include +#include +#include + +#ifndef GAME_H +#define GAME_H + +struct GAME { + unsigned char* grid; + int padding; + int width; + int height; +}; + +int neighbors(struct GAME* game, int x, int y, unsigned char* halo_above, unsigned char* halo_below); +void next(struct GAME* game, unsigned char* halo_above, unsigned char* halo_below); +void randomize(struct GAME* game); + +#endif // GAME_H diff --git a/mpi/output/.gitignore b/mpi/output/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/mpi/output/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/mpi/src/create_grid.c b/mpi/src/create_grid.c new file mode 100644 index 0000000..b89d077 --- /dev/null +++ b/mpi/src/create_grid.c @@ -0,0 +1,38 @@ +#include "create_grid.h" + +void print_grid(struct GAME* game) { + printf("\n===GRID===\n"); + for (int y = 0; y < game->height; y++) { + for (int x = 0; x < game->width; x++) { + printf("%i ", game->grid[y*(game->width+game->padding*2) + x]); + } + printf("\n"); + } +} + +void create_grid(int argc, char** argv) { + char* filename; + struct GAME game; + game.padding = 0; + if (argc == 5) { + game.width = atoi(argv[2]); + game.height = atoi(argv[3]); + filename = argv[4]; + } else { + printf("Usage: ./gol create-grid \n"); + exit(1); + } + + int size = (game.width+game.padding*2) * (game.height+game.padding*2); + unsigned char* grid = (unsigned char*)malloc(sizeof(unsigned char) * size); + for (int y = 0; y < game.height; y++) { + printf("Row %i: ", y); + for (int x = 0; x < game.width; x++) { + char temp; + scanf("%i%c", (unsigned int*)&game.grid[y*(game.width+game.padding*2) + x],&temp); + } + } + game.grid = grid; + write_out(filename, &game); + print_grid(&game); +} diff --git a/mpi/src/file.c b/mpi/src/file.c new file mode 100644 index 0000000..46ba46a --- /dev/null +++ b/mpi/src/file.c @@ -0,0 +1,17 @@ +#include "file.h" + +void read_in(char* filename, struct GAME* game) { + FILE* file = fopen(filename, "rb"); + for (int i = game->padding; i < game->height+game->padding; i++) { + fread(&game->grid[i*(game->width + 2*game->padding) + game->padding], sizeof(unsigned char), game->width, file); + } + fclose(file); +} + +void write_out(char* filename, struct GAME* game) { + FILE* file = fopen(filename, "w+"); + for (int i = game->padding; i < game->height+game->padding; i++) { + fwrite(&game->grid[i*(game->width + 2*game->padding) + game->padding], sizeof(unsigned char), game->width, file); + } + fclose(file); +} diff --git a/mpi/src/game.c b/mpi/src/game.c new file mode 100644 index 0000000..de73f67 --- /dev/null +++ b/mpi/src/game.c @@ -0,0 +1,56 @@ +#include "game.h" + +int neighbors(struct GAME* game, int x, int y, unsigned char* halo_above, unsigned char* halo_below) { + int n = 0; + + for (int dy = -1; dy <= 1; dy++) { + for (int dx = -1; dx <= 1; dx++) { + if (!(dx == 0 && dy == 0) && (x+dx) > 0 && (x+dx) < game->width+(game->padding*2)) { + if (y+dy == -1 && halo_above != NULL) { + if (halo_above[x+dx]) { + n++; + } + } else if (y+dy == game->height && halo_below != NULL) { + if (halo_below[x+dx]) { + n++; + } + } else if (game->grid[(y+dy) * (game->width+game->padding*2) + (x+dx)]) { + n++; + } + } + } + } + return n; +} + +void next(struct GAME* game, unsigned char* halo_above, unsigned char* halo_below) { + unsigned char* newGrid = malloc(sizeof(unsigned char) * game->height * (game->width + 2*game->padding)); + for (int y = 0; y < game->height; y++) { + for (int x = 0; x < game->width + 2*game->padding; x++) { + int my_neighbors = neighbors(game, x, y, halo_above, halo_below); + int my_coord = y * (game->width+game->padding*2) + x; + newGrid[my_coord] = 0; // It's possible that there are artifacts from the last iteration + if (game->grid[my_coord]) { + if (my_neighbors < 2 || my_neighbors > 3) { + newGrid[my_coord] = 0; + } else { + newGrid[my_coord] = 1; + } + } else { + if (my_neighbors == 3) { + newGrid[my_coord] = 1; + } + } + } + } + free(game->grid); + game->grid = newGrid; +} + +void randomize(struct GAME* game) { + for (int y = game->padding; y < game->height+game->padding; y++) { + for (int x = game->padding; x < game->width+game->padding; x++) { + game->grid[y*(game->width+game->padding*2) + x] = (unsigned char) rand() & 1; + } + } +} diff --git a/mpi/src/main.c b/mpi/src/main.c new file mode 100644 index 0000000..9fed89e --- /dev/null +++ b/mpi/src/main.c @@ -0,0 +1,220 @@ +#include +#include +#include +#include +#include + +#include "file.h" +#include "game.h" +#include "create_grid.h" + +/* + Rules for life: + Any live cell with fewer than two live neighbors dies (underpopulation). + Any live cell with two or three live neighbors continues to live. + Any live cell with more than three live neighbors dies (overpopulation). + Any dead cell with exactly three live neighbors becomes a live cell (reproduction). + */ +#define PADDING 16 +//#define VERBOSE 1 +#define SEED 100 + +struct Args { + int process_count; + int iterations; + int log_each_step; + int width; + int height; + int padding; + int rows_per_proc; + int data_per_proc; +}; + +void broadcast_and_receive_input(MPI_Comm comm, struct Args* args) { + int blocks[8] = {1,1,1,1,1,1,1,1}; + MPI_Aint displacements[8]; + MPI_Datatype types[8] = {MPI_INT, MPI_INT, MPI_INT, MPI_INT, MPI_INT, MPI_INT, MPI_INT, MPI_INT}; + MPI_Datatype arg_t; + + displacements[0] = offsetof(struct Args, process_count); + displacements[1] = offsetof(struct Args, iterations); + displacements[2] = offsetof(struct Args, log_each_step); + displacements[3] = offsetof(struct Args, width); + displacements[4] = offsetof(struct Args, height); + displacements[5] = offsetof(struct Args, padding); + displacements[6] = offsetof(struct Args, rows_per_proc); + displacements[7] = offsetof(struct Args, data_per_proc); + + MPI_Type_create_struct(8, blocks, displacements, types, &arg_t); + MPI_Type_commit(&arg_t); + MPI_Bcast(args, 1, arg_t, 0, comm); +} + +void scatter_data(MPI_Comm comm, struct Args* args, unsigned char* local_data, int rank, int* data_counts, int* displacements, char* filename) { + unsigned char* data; + + int grid_size = (args->height + args->padding*2)*(args->width + args->padding*2); + if (rank == 0) { + struct GAME game; + game.width = args->width; + game.height = args->height; + game.padding = args->padding; + int size = sizeof(unsigned char)*grid_size; + data = malloc(size); + memset(data, 0, size); + game.grid = data; + if (strcmp(filename, "random") == 0) { + randomize(&game); + } else { + read_in(filename, &game); + } + } + MPI_Scatterv(data, data_counts, displacements, MPI_UNSIGNED_CHAR, local_data, data_counts[rank], MPI_UNSIGNED_CHAR, 0, comm); + + if (rank == 0) { + free(data); + } +} + + +void simulate(int argc, char** argv) { + srand(SEED); + double totalStart = MPI_Wtime(); + struct Args args; + args.padding = PADDING; + + int rank, process_count; + MPI_Comm comm; + MPI_Init(&argc, &argv); + comm = MPI_COMM_WORLD; + MPI_Comm_rank(comm, &rank); + MPI_Comm_size(comm, &args.process_count); + + char* filename; + if (rank == 0) { + if (argc == 7) { + filename = argv[2]; + args.width = atoi(argv[3]); + args.height = atoi(argv[4]); + args.iterations = atoi(argv[5]); + args.log_each_step = atoi(argv[6]); + } else { + printf("Usage: ./gol simulate \n"); + filename = "random"; + args.height = 5; + args.width = 5; + args.iterations = 5; + args.log_each_step = 0; + } + + args.rows_per_proc = (args.height + args.padding*2)/args.process_count; + args.data_per_proc = args.rows_per_proc * (args.width + args.padding*2); + } + + broadcast_and_receive_input(comm, &args); + + int grid_size = ((args.width + args.padding*2)*(args.height + args.padding*2)); + int* data_counts = malloc(sizeof(int) * args.process_count); + int* displacements = malloc(sizeof(int) * args.process_count); + for (int i = 0; i < args.process_count; i++) { + data_counts[i] = args.data_per_proc; + displacements[i] = args.data_per_proc*sizeof(unsigned char)*i; + } + data_counts[args.process_count-1] += grid_size % (args.data_per_proc * args.process_count); + unsigned char* local_data = malloc(data_counts[rank]*sizeof(unsigned char)); + memset(local_data, 0, sizeof(unsigned char) * data_counts[rank]); + scatter_data(comm, &args, local_data, rank, data_counts, displacements, filename); + + // Allocate space for current grid (1 byte per tile) + char iteration_file[1024]; + + double timeComputingLife = 0; + float localTime = 0; + + struct GAME local_game; + local_game.grid = local_data; + local_game.width = args.width; + local_game.height = data_counts[rank] / (args.width + args.padding*2); + local_game.padding = args.padding; + unsigned char* halo_above = NULL; + unsigned char* halo_below = NULL; + if (rank > 0) { + halo_above = (unsigned char*)malloc(sizeof(unsigned char) * (args.width + args.padding*2)); + memset(halo_above, 0, sizeof(unsigned char) * (args.width + args.padding*2)); + } + if (rank < args.process_count-1) { + halo_below = (unsigned char*)malloc(sizeof(unsigned char) * (args.width + args.padding*2)); + memset(halo_below, 0, sizeof(unsigned char) * (args.width + args.padding*2)); + } + + unsigned char* global_data; + + for (int i = 0; i <= args.iterations; i++) { + if (i > 0) { + int total_width = args.width + args.padding*2; + if (rank < args.process_count - 1) { + MPI_Send(&local_game.grid[(local_game.height-1) * total_width], total_width, MPI_UNSIGNED_CHAR, rank+1, 1, comm); + } + if (rank > 0) { + MPI_Recv(halo_above, total_width, MPI_UNSIGNED_CHAR, rank-1, 1, comm, NULL); + MPI_Send(&local_game.grid[0], total_width, MPI_UNSIGNED_CHAR, rank-1, 0, comm); + } + if (rank < args.process_count - 1) { + MPI_Recv(halo_below, total_width, MPI_UNSIGNED_CHAR, rank+1, 0, comm, NULL); + } + MPI_Barrier(comm); + next(&local_game, halo_above, halo_below); + } + if (args.log_each_step) { + if (rank == 0) { + global_data = malloc(sizeof(unsigned char) * grid_size); + memset(global_data, 0, sizeof(unsigned char) * grid_size); + } + MPI_Gatherv(local_game.grid, data_counts[rank], MPI_UNSIGNED_CHAR, global_data, data_counts, displacements, MPI_UNSIGNED_CHAR, 0, comm); + if (rank == 0) { + #ifdef VERBOSE + printf("\n===Iteration %i===\n", i); + for (int y = args.padding; y < args.height+args.padding; y++) { + for (int x = args.padding; x < args.width+args.padding; x++) { + printf("%s ", global_data[y*(args.width+2*args.padding) + x] ? "X" : " "); + } + printf("\n"); + } + printf("===End iteration %i===\n", i); + #endif + + struct GAME global_game; + global_game.grid = global_data; + global_game.width = args.width; + global_game.height = args.height; + global_game.padding = args.padding; + sprintf(iteration_file, "output/iteration-%07d.bin", i); + write_out(iteration_file, &global_game); + } + } + } + + double totalEnd = MPI_Wtime(); + MPI_Finalize(); + if (rank == 0) { + printf("\n===Timing===\nTime computing life: %f\nClock time: %f\n", timeComputingLife, (totalEnd - totalStart)); + } + +} + +int main(int argc, char** argv) { + if (argc >= 2) { + if (strcmp(argv[1], "simulate") == 0) { + simulate(argc, argv); + } else if (strcmp(argv[1], "create-grid") == 0) { + create_grid(argc, argv); + } else { + printf("Unknown input: %s\n", argv[1]); + exit(1); + } + } else { + printf("Usage: ./gol \n"); + exit(1); + } + return 0; +} diff --git a/openmp/build/.gitignore b/openmp/build/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/openmp/build/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/openmp/gol b/openmp/gol new file mode 120000 index 0000000..4359a7e --- /dev/null +++ b/openmp/gol @@ -0,0 +1 @@ +build/bin/gol \ No newline at end of file diff --git a/serial/build/.gitignore b/serial/build/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/serial/build/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/serial/gol b/serial/gol new file mode 120000 index 0000000..4359a7e --- /dev/null +++ b/serial/gol @@ -0,0 +1 @@ +build/bin/gol \ No newline at end of file