From aa1d7c6e284cc0818325614391619f3ff13d3e94 Mon Sep 17 00:00:00 2001 From: Simponic Date: Sat, 4 Dec 2021 13:34:49 -0700 Subject: [PATCH] Initial commit --- .DS_Store | Bin 0 -> 6148 bytes .gitignore | 5 + Readme.org | 82 +++++++++++++++ cuda-global/.DS_Store | Bin 0 -> 6148 bytes cuda-global/Makefile | 20 ++++ cuda-global/gol | Bin 0 -> 709816 bytes cuda-global/include/create_grid.cuh | 12 +++ cuda-global/include/file.cuh | 11 ++ cuda-global/include/game.cuh | 21 ++++ cuda-global/src/create_grid.cu | 38 +++++++ cuda-global/src/file.cu | 17 ++++ cuda-global/src/game.cu | 46 +++++++++ cuda-global/src/main.cu | 150 ++++++++++++++++++++++++++++ graphics/Makefile | 4 + graphics/convert_bin_to_img | Bin 0 -> 13304 bytes graphics/convert_bin_to_img.c | 137 +++++++++++++++++++++++++ graphics/make_movie.sh | 11 ++ openmp/Makefile | 57 +++++++++++ openmp/include/create_grid.h | 12 +++ openmp/include/file.h | 11 ++ openmp/include/game.h | 23 +++++ openmp/src/create_grid.c | 38 +++++++ openmp/src/file.c | 17 ++++ openmp/src/game.c | 64 ++++++++++++ openmp/src/main.c | 106 ++++++++++++++++++++ serial/Makefile | 54 ++++++++++ serial/include/create_grid.h | 12 +++ serial/include/file.h | 11 ++ serial/include/game.h | 20 ++++ serial/src/create_grid.c | 38 +++++++ serial/src/file.c | 17 ++++ serial/src/game.c | 53 ++++++++++ serial/src/main.c | 103 +++++++++++++++++++ 33 files changed, 1190 insertions(+) create mode 100644 .DS_Store create mode 100644 .gitignore create mode 100644 Readme.org create mode 100644 cuda-global/.DS_Store create mode 100644 cuda-global/Makefile create mode 100755 cuda-global/gol create mode 100644 cuda-global/include/create_grid.cuh create mode 100644 cuda-global/include/file.cuh create mode 100644 cuda-global/include/game.cuh create mode 100644 cuda-global/src/create_grid.cu create mode 100644 cuda-global/src/file.cu create mode 100644 cuda-global/src/game.cu create mode 100644 cuda-global/src/main.cu create mode 100644 graphics/Makefile create mode 100755 graphics/convert_bin_to_img create mode 100644 graphics/convert_bin_to_img.c create mode 100755 graphics/make_movie.sh create mode 100644 openmp/Makefile create mode 100644 openmp/include/create_grid.h create mode 100644 openmp/include/file.h create mode 100644 openmp/include/game.h create mode 100644 openmp/src/create_grid.c create mode 100644 openmp/src/file.c create mode 100644 openmp/src/game.c create mode 100644 openmp/src/main.c create mode 100644 serial/Makefile create mode 100644 serial/include/create_grid.h create mode 100644 serial/include/file.h create mode 100644 serial/include/game.h create mode 100644 serial/src/create_grid.c create mode 100644 serial/src/file.c create mode 100644 serial/src/game.c create mode 100644 serial/src/main.c diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..59ca0cde695f7c480532dcab24d2470e354f6d08 GIT binary patch literal 6148 zcmeHKO>fgc5S>j!>NEo7KqW3nmbiw}LQz4zxS<@l)(8%Of?Zpwh2ynsha93vzJbJ# z;ly9zzi@&#yIU!7nj1nW+L318e$4ZFpS81IA`-)CbVSrAA_vac-a~PN@i_aMwM-8W z3iXVKG^Ug!g%qqs+YYOMRp5V9fcI{XE@?^;_U!WhO<$$*GE8NN2u=@Y@PpsVP}|4~ zXJu|!Kf*js%Ifg&r)cf8Z*_K^U8m=K@UP^|uYzh?4uj$yw_Zz`hS&8Ve3QhpQUC4> znN>lO#f2gyQH+rHZ<8#Nv!R@3QK`7T9&ox&chujX&yNT0^ToiOA00n=JaC^qJy|Te z&i;c(rx&A7=_He1)XS4V!cunI;5B?jWrHA}{US?cHbw-q9VEK~qUCf&2_!5Vf_+EK zvS1w~#++ixXhQjFthnEZ-J=Uc2KXow-~pHgjT@YA4bB}Z@fHQ*d5#iqC8+{8ykWjy z4Q>bVF}MllY<&0@uXlMJXjCeAZhYt(cS=JFxT%);DIgqj`CcU3qE zPopiZ0#<=l1$K0^&*%Tk&G-LRl5JT9tO8r5fM}ol=R+*XoULn% ~ + +For example to do 1000 iterations at 1920x1080 with a random starting position (the last ~1~ will log each iteration into the ~output~ directory) with a block size of 32: + +~srun ./gol simulate random 1920 1080 1000 1 32~ + +*** OpenMP +Firstly, ~cd~ into ~openmp~ and ~make~. + +This implementation takes these arguments: + +~./gol simulate ~ + +For example to do 100 iterations with 8 threads at 800x600 with a random starting position (and log each iteration into the ~output~ directory): + +~./gol simulate random 800 600 100 1 8~ + +*** Serial +The most basic of the three implementations. + +Firstly, ~cd~ into ~serial~ and ~make~. + +This implementation takes these arguments: + +~./gol simulate ~ + +For example to do 10 iterations with 8 threads at 400x400 with a random starting position (and log to ~output~): + +~./gol simulate random 400 400 10 1~ + + +** Creating an initial starting grid +Each ~gol~ binary also has a ~create-grid~ mode, mainly used for debugging: + +~./gol create-grid ~ + +You'll be prompted to enter in grid values (0/1) for each row, each seperated by a space. + +For example to make a 10x10 grid and output it to ~output/testing.bin~: + +~./gol create-grid 10 10 output/testing.bin~ + +And then this file can be used in the ~filename~ argument when using ~simulate~. diff --git a/cuda-global/.DS_Store b/cuda-global/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..96423a519a2acfcc233094b16590a5ab4b37e19b GIT binary patch literal 6148 zcmeHK&u`N(6n<{I)zyU5!zOV-vc$C-+ZfuWT|!q59JmlP4uHC(30t%*u9}1%s!F+S z(*77u{44w~oZvm%MQb{)Xqw)Wo=*z22^$?u?lEd7U$KU( zp+;f)h~B1p6s9^{;c~^pRDjlQ4MHd(ffVkpAH5Q<(YJpaGsADfIcP}ltTM5_*H~@r zD}xdCS3(5wGFv>Wu_e5N04^bhuVxH&{%wuFjw2|cfH9@DzJJxYO~_#aqh(g({C-wA z&ByND{Sl7SBrkS$eu_r3wYJ`tZMh-8_!oNW7eP_x{b2HmN*}aN!$m#_Pm_2$>~5au ztO$}Uo|u3nijng9W0FOB+Sg?kw%=1n^PZaR?!VmYsl!(X^La;Z zJ%4fhet4N)W%?S2jVAC@Gxo&c0&XzlCj8BxWU0<*q6_wd#mEY<0;~Wk;I;<2!D_Gq ztN<%eQ-Jmdg-+->tSp+X0~2!vKx|>PG0f91A;l<%p2Nx_wx9_cifBWHyJ83%j`hm% zJcpG<8xF!|1Sq|i4|Z49+d*3 zHSh<0oRT|RS0+bitwKLTCnH{E@oxxb%u$S7I*Om78^d}<8AQ)vWf5!8_(#CVzzHkx HUlsTR5MhxI literal 0 HcmV?d00001 diff --git a/cuda-global/Makefile b/cuda-global/Makefile new file mode 100644 index 0000000..fd802dc --- /dev/null +++ b/cuda-global/Makefile @@ -0,0 +1,20 @@ +.DEFAULT_GOAL := all + +INCLUDES = -I include/ + +game.o: include/game.cuh src/game.cu + nvcc -c src/game.cu $(INCLUDES) -o build/game.o + +file.o: game.o include/file.cuh src/file.cu + nvcc -c src/file.cu $(INCLUDES) -o build/file.o + +create_grid.o: file.o game.o include/create_grid.cuh src/create_grid.cu + nvcc -c src/create_grid.cu $(INCLUDES) -o build/create_grid.o + +gol: game.o file.o create_grid.o + nvcc $(INCLUDES) -o gol build/game.o build/file.o build/create_grid.o src/main.cu + +clean: + $(RM) build/* gol output/* + +all: gol diff --git a/cuda-global/gol b/cuda-global/gol new file mode 100755 index 0000000000000000000000000000000000000000..3c94c50eba78ed99086e1147b6fe9834fb23c517 GIT binary patch literal 709816 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

8k|#~K_Wf;+`|BO|SMsO| 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 KA9 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 TQ?360^S_dCeq3}Y{_Oo<4@ +#include +#include "file.cuh" +#include "game.cuh" + +#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/cuda-global/include/file.cuh b/cuda-global/include/file.cuh new file mode 100644 index 0000000..594eb4b --- /dev/null +++ b/cuda-global/include/file.cuh @@ -0,0 +1,11 @@ +#include "game.cuh" +#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/cuda-global/include/game.cuh b/cuda-global/include/game.cuh new file mode 100644 index 0000000..873a4cf --- /dev/null +++ b/cuda-global/include/game.cuh @@ -0,0 +1,21 @@ +#include +#include +#include +#include + +#ifndef GAME_H +#define GAME_H + + +struct GAME { + unsigned char* grid; + int padding; + int width; + int height; +}; + +__device__ int neighbors(struct GAME game, int x, int y); +__global__ void next(struct GAME game, unsigned char* newGrid); +void randomize(struct GAME* game); + +#endif // GAME_H diff --git a/cuda-global/src/create_grid.cu b/cuda-global/src/create_grid.cu new file mode 100644 index 0000000..fa208f2 --- /dev/null +++ b/cuda-global/src/create_grid.cu @@ -0,0 +1,38 @@ +#include "create_grid.cuh" + +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/cuda-global/src/file.cu b/cuda-global/src/file.cu new file mode 100644 index 0000000..b1df5f9 --- /dev/null +++ b/cuda-global/src/file.cu @@ -0,0 +1,17 @@ +#include "file.cuh" + +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/cuda-global/src/game.cu b/cuda-global/src/game.cu new file mode 100644 index 0000000..9021916 --- /dev/null +++ b/cuda-global/src/game.cu @@ -0,0 +1,46 @@ +#include "game.cuh" + +__device__ int neighbors(struct GAME game, int x, int y) { + 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 && (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++; + } + } + } + } + return n; +} + +__global__ void next(struct GAME game, unsigned char* newGrid) { + int idy = blockDim.y * blockIdx.y + threadIdx.y; + int idx = blockDim.x * blockIdx.x + threadIdx.x; + + if (idy <= game.height+game.padding*2 && idx <= game.width+game.padding*2) { + int my_neighbors = neighbors(game, idx, idy); + int my_coord = idy * (game.width+game.padding*2) + idx; + 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; + } + } + } +} + +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/cuda-global/src/main.cu b/cuda-global/src/main.cu new file mode 100644 index 0000000..2b11fe1 --- /dev/null +++ b/cuda-global/src/main.cu @@ -0,0 +1,150 @@ +#include +#include +#include +#include +#include + +#include "file.cuh" +#include "game.cuh" +#include "create_grid.cuh" + + +/* + 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 BLOCK 32 +#define PADDING 10 +//#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 +#define gpuErrchk(ans) { gpuAssert((ans), __FILE__, __LINE__); } +inline void gpuAssert(cudaError_t code, const char *file, int line, bool abort = +true) { + if (code != cudaSuccess) { + fprintf(stderr, "GPUassert: %s %s %d\n", cudaGetErrorString(code), file, + line); + if (abort) + exit(code); + } +} + +void simulate(int argc, char** argv) { + srand(SEED); + clock_t totalStart = clock(); + char* filename; + struct GAME game; + game.padding = PADDING; + int iterations, log_each_step, block_size; + if (argc == 8) { + filename = argv[2]; + game.width = atoi(argv[3]); + game.height = atoi(argv[4]); + iterations = atoi(argv[5]); + log_each_step = atoi(argv[6]); + block_size = atoi(argv[7]); + } else { + printf("Usage: ./gol simulate \n"); + filename = "random"; + game.height = 10; + game.width = 10; + iterations = 5; + log_each_step = 0; + } + + // Allocate space for current grid (1 byte per tile) + int size = (game.height+(2*game.padding)) * (game.width+(2*game.padding)) * sizeof(unsigned char); + game.grid = (unsigned char*)malloc(size); + memset(game.grid, 0, size); + + if (strcmp(filename, "random") == 0) { + randomize(&game); + } else { + read_in(filename, &game); + } + + char iteration_file[1024]; + + unsigned char* grid_d; + unsigned char* newGrid_d; + gpuErrchk(cudaMalloc(&grid_d, size)); + gpuErrchk(cudaMemcpy(grid_d, game.grid, size, cudaMemcpyHostToDevice)); + gpuErrchk(cudaMalloc(&newGrid_d, size)); + + unsigned char* grid_h = (unsigned char*)malloc(size); + unsigned char* temp; + + game.grid = grid_d; + + int grid_num = (int)ceil((game.width+(2*game.padding))/(float)block_size); + dim3 dim_grid(grid_num, grid_num, 1); + dim3 dim_block(block_size, block_size, 1); + + cudaEvent_t startLife, stopLife; + cudaEventCreate(&startLife); + cudaEventCreate(&stopLife); + double timeComputingLife = 0; + float localTime = 0; + + for (int i = 0; i <= iterations; i++) { + if (i > 0) { + cudaEventRecord(startLife); + next<<>>(game, newGrid_d); + cudaEventRecord(stopLife); + cudaEventSynchronize(stopLife); + cudaEventElapsedTime(&localTime, startLife, stopLife); + timeComputingLife += localTime/1000; + + temp = game.grid; + game.grid = newGrid_d; + newGrid_d = temp; + } + if (log_each_step) { + gpuErrchk(cudaMemcpy(grid_h, game.grid, size, cudaMemcpyDeviceToHost)); + #ifdef VERBOSE + printf("\n===Iteration %i===\n", i); + for (int y = game.padding; y < game.height+game.padding; y++) { + for (int x = game.padding; x < game.width+game.padding; x++) { + printf("%s ", grid_h[y*(game.width+2*game.padding) + x] ? "X" : " "); + } + printf("\n"); + } + printf("===End iteration %i===\n", i); + #endif + sprintf(iteration_file, "output/iteration-%07d.bin", i); + temp = game.grid; + game.grid = grid_h; + write_out(iteration_file, &game); + game.grid = temp; + } + } + + 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(&grid_d); + cudaFree(&game.grid); + free(grid_h); +} + +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/graphics/Makefile b/graphics/Makefile new file mode 100644 index 0000000..296b627 --- /dev/null +++ b/graphics/Makefile @@ -0,0 +1,4 @@ +.DEFAULT_GOAL := convert_bin_to_img + +convert_bin_to_img: convert_bin_to_img.c + gcc convert_bin_to_img.c -o convert_bin_to_img diff --git a/graphics/convert_bin_to_img b/graphics/convert_bin_to_img new file mode 100755 index 0000000000000000000000000000000000000000..e6e9635a54e516bd851b5e53a6f9fdd20db0dae4 GIT binary patch literal 13304 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 +#include +#include + +// Most BMP Image generation code is from https://stackoverflow.com/a/47785639/15819675 + +const int BYTES_PER_PIXEL = 3; /// red, green, & blue +const int FILE_HEADER_SIZE = 14; +const int INFO_HEADER_SIZE = 40; + +void generateBitmapImage(unsigned char* image, int height, int width, char* imageFileName); +unsigned char* createBitmapFileHeader(int height, int stride); +unsigned char* createBitmapInfoHeader(int height, int width); + +void generateBitmapImage (unsigned char* image, int height, int width, char* imageFileName) +{ + int widthInBytes = width * BYTES_PER_PIXEL; + + unsigned char padding[3] = {0, 0, 0}; + int paddingSize = (4 - (widthInBytes) % 4) % 4; + + int stride = (widthInBytes) + paddingSize; + + FILE* imageFile = fopen(imageFileName, "wb"); + + unsigned char* fileHeader = createBitmapFileHeader(height, stride); + fwrite(fileHeader, 1, FILE_HEADER_SIZE, imageFile); + + unsigned char* infoHeader = createBitmapInfoHeader(height, width); + fwrite(infoHeader, 1, INFO_HEADER_SIZE, imageFile); + + int i; + for (i = 1; i <= height; i++) { + fwrite(image + ((height - i)*widthInBytes), BYTES_PER_PIXEL, width, imageFile); + fwrite(padding, 1, paddingSize, imageFile); + } + + fclose(imageFile); +} + +unsigned char* createBitmapFileHeader (int height, int stride) +{ + int fileSize = FILE_HEADER_SIZE + INFO_HEADER_SIZE + (stride * height); + + static unsigned char fileHeader[] = { + 0,0, /// signature + 0,0,0,0, /// image file size in bytes + 0,0,0,0, /// reserved + 0,0,0,0, /// start of pixel array + }; + + fileHeader[ 0] = (unsigned char)('B'); + fileHeader[ 1] = (unsigned char)('M'); + fileHeader[ 2] = (unsigned char)(fileSize ); + fileHeader[ 3] = (unsigned char)(fileSize >> 8); + fileHeader[ 4] = (unsigned char)(fileSize >> 16); + fileHeader[ 5] = (unsigned char)(fileSize >> 24); + fileHeader[10] = (unsigned char)(FILE_HEADER_SIZE + INFO_HEADER_SIZE); + + return fileHeader; +} + +unsigned char* createBitmapInfoHeader (int height, int width) +{ + static unsigned char infoHeader[] = { + 0,0,0,0, /// header size + 0,0,0,0, /// image width + 0,0,0,0, /// image height + 0,0, /// number of color planes + 0,0, /// bits per pixel + 0,0,0,0, /// compression + 0,0,0,0, /// image size + 0,0,0,0, /// horizontal resolution + 0,0,0,0, /// vertical resolution + 0,0,0,0, /// colors in color table + 0,0,0,0, /// important color count + }; + + infoHeader[ 0] = (unsigned char)(INFO_HEADER_SIZE); + infoHeader[ 4] = (unsigned char)(width ); + infoHeader[ 5] = (unsigned char)(width >> 8); + infoHeader[ 6] = (unsigned char)(width >> 16); + infoHeader[ 7] = (unsigned char)(width >> 24); + infoHeader[ 8] = (unsigned char)(height ); + infoHeader[ 9] = (unsigned char)(height >> 8); + infoHeader[10] = (unsigned char)(height >> 16); + infoHeader[11] = (unsigned char)(height >> 24); + infoHeader[12] = (unsigned char)(1); + infoHeader[14] = (unsigned char)(BYTES_PER_PIXEL*8); + + return infoHeader; +} + +void convertBinToRaw(char* file, int width, int height) { + unsigned char white[3] = {255,255,255}; + unsigned char black[3] = {0,0,0}; + + unsigned char* grid = malloc(sizeof(unsigned char) * width * height); + + FILE* fp = fopen(file, "rb"); + fread(grid, sizeof(unsigned char), width*height, fp); + fclose(fp); + + int i; + char* raw_file_name; + sprintf(raw_file_name, "%s.bmp", file); + unsigned char* full_image = malloc(sizeof(unsigned char) * width * height * 3); + for (i = 0; i < width*height; i++) { + if (grid[i]) { + memcpy(&full_image[i*3], &white, sizeof(unsigned char) * 3); + } else { + memcpy(&full_image[i*3], &black, sizeof(unsigned char) * 3); + } + } + + generateBitmapImage(full_image, height, width, raw_file_name); + + free(grid); + free(full_image); +} + +int main(int argc, char** argv) { + char* file_name; + int width, height; + if (argc == 4) { + file_name = argv[1]; + width = atoi(argv[2]); + height = atoi(argv[3]); + } else { + printf("Usage: ./convert_bin_to_img \n"); + exit(1); + } + + convertBinToRaw(file_name, width, height); + + return 0; +} diff --git a/graphics/make_movie.sh b/graphics/make_movie.sh new file mode 100755 index 0000000..8ff0877 --- /dev/null +++ b/graphics/make_movie.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ $# == 5 ]; then + for x in $(find $1 -type f -name "*.bin"); do + ./convert_bin_to_img $x $2 $3 + done + ffmpeg -r $4 -f image2 -s "${2}x${3}" -i "${1}/iteration-%07d.bin.bmp" -vcodec libx264 -crf 25 -pix_fmt yuv420p "${5}.mp4" +else + echo "Usage: ./make_movie.sh " +fi + diff --git a/openmp/Makefile b/openmp/Makefile new file mode 100644 index 0000000..8fefe22 --- /dev/null +++ b/openmp/Makefile @@ -0,0 +1,57 @@ +# This is some Makefile I've been using for projects for a while and can't find +# where I originally got it + +CC ?= gcc + +SRC_PATH = src +BUILD_PATH = build +BIN_PATH = $(BUILD_PATH)/bin + +BIN_NAME = gol + +SRC_EXT = c + +SOURCES = $(shell find $(SRC_PATH) -name '*.$(SRC_EXT)' | sort -k 1nr | cut -f2-) +OBJECTS = $(SOURCES:$(SRC_PATH)/%.$(SRC_EXT)=$(BUILD_PATH)/%.o) +DEPS = $(OBJECTS:.o=.d) + +COMPILE_FLAGS = -Wall -g -fopenmp -lm -std=c99 +INCLUDES = -I include/ +LIBS = -fopenmp -lm + +.PHONY: default_target +default_target: release + +.PHONY: release +release: dirs + @$(MAKE) all + +.PHONY: dirs +dirs: + @echo "Creating directories" + @mkdir -p $(dir $(OBJECTS)) + @mkdir -p $(BIN_PATH) + +.PHONY: clean +clean: + @echo "Deleting $(BIN_NAME) symlink" + @$(RM) $(BIN_NAME) + @echo "Deleting directories" + @$(RM) -r $(BUILD_PATH) + @$(RM) -r $(BIN_PATH) + +.PHONY: all +all: $(BIN_PATH)/$(BIN_NAME) + @echo "Making symlink: $(BIN_NAME) -> $<" + @$(RM) $(BIN_NAME) + @ln -s $(BIN_PATH)/$(BIN_NAME) $(BIN_NAME) + +$(BIN_PATH)/$(BIN_NAME): $(OBJECTS) + @echo "Linking: $@" + $(CC) $(OBJECTS) -o $@ ${LIBS} + +-include $(DEPS) + +$(BUILD_PATH)/%.o: $(SRC_PATH)/%.$(SRC_EXT) + @echo "Compiling: $< -> $@" + $(CC) $(COMPILE_FLAGS) $(INCLUDES) -MP -MMD -c $< -o $@ diff --git a/openmp/include/create_grid.h b/openmp/include/create_grid.h new file mode 100644 index 0000000..45ac891 --- /dev/null +++ b/openmp/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/openmp/include/file.h b/openmp/include/file.h new file mode 100644 index 0000000..b2db380 --- /dev/null +++ b/openmp/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/openmp/include/game.h b/openmp/include/game.h new file mode 100644 index 0000000..0f9ab46 --- /dev/null +++ b/openmp/include/game.h @@ -0,0 +1,23 @@ +#include +#include +#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); +void next(struct GAME* game, int num_threads); +void update(struct GAME* game, int x1, int x2, int y1, int y2); +void randomize(struct GAME* game); + +#endif // GAME_H diff --git a/openmp/src/create_grid.c b/openmp/src/create_grid.c new file mode 100644 index 0000000..d6a5b94 --- /dev/null +++ b/openmp/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][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); + } + + unsigned char** grid = malloc(sizeof(unsigned char*) * game.height); + for (int y = 0; y < game.height; y++) { + grid[y] = malloc(sizeof(unsigned char*) * game.width); + printf("Row %i: ", y); + for (int x = 0; x < game.width; x++) { + char temp; + scanf("%i%c", (unsigned int*)&grid[y][x],&temp); + } + } + game.grid = grid; + write_out(filename, &game); + print_grid(&game); +} diff --git a/openmp/src/file.c b/openmp/src/file.c new file mode 100644 index 0000000..3ecb613 --- /dev/null +++ b/openmp/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->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->padding, sizeof(unsigned char), game->width, file); + } + fclose(file); +} diff --git a/openmp/src/game.c b/openmp/src/game.c new file mode 100644 index 0000000..b5e786d --- /dev/null +++ b/openmp/src/game.c @@ -0,0 +1,64 @@ +#include "game.h" + +int neighbors(struct GAME* game, int x, int y) { + 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 && (y+dy) > 0 && (x+dx) < game->width+(game->padding*2) && (y+dy) < game->height+(game->padding*2)) { + if (game->grid[y+dy][x+dx]) { + n++; + } + } + } + } + + return n; +} + +void next(struct GAME* game, int threads) { + unsigned char** newGrid = malloc(sizeof(unsigned char*) * (game->height+(game->padding*2))); + int y,x,i,size; + size = sizeof(unsigned char) * (game->width+(game->padding*2)); + for (y = 0; y < game->height+(game->padding*2); y++) { + newGrid[y] = malloc(size); + memset(newGrid[y], 0, size); + } + int total_width = game->width+(game->padding*2); + int total_height = game->height+(game->padding*2); + + int per_thread = (total_width * total_height) / threads; + +#pragma omp parallel num_threads(threads) shared(per_thread, threads, total_width, total_height, newGrid, game) private(y,x,i) + { + int me = omp_get_thread_num(); + int thread_start = per_thread * me; + int thread_end = thread_start + per_thread + (me == threads-1 ? (total_width*total_height) % per_thread : 0); + for (i = thread_start; i < thread_end; i++) { + y = i / total_width; + x = i % total_width; + int my_neighbors = neighbors(game, x, y); + if (game->grid[y][x]) { + if (my_neighbors < 2 || my_neighbors > 3) { + newGrid[y][x] = 0; + } else { + newGrid[y][x] = 1; + } + } else { + if (my_neighbors == 3) { + newGrid[y][x] = 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][x] = rand() & 1; + } + } +} diff --git a/openmp/src/main.c b/openmp/src/main.c new file mode 100644 index 0000000..68ec0bd --- /dev/null +++ b/openmp/src/main.c @@ -0,0 +1,106 @@ +#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 10 +//#define VERBOSE 1 +#define SEED 100 + +void simulate(int argc, char** argv) { + srand(SEED); + char* filename; + struct GAME game; + game.padding = PADDING; + int iterations, log_each_step, threads; + if (argc == 8) { + filename = argv[2]; + game.width = atoi(argv[3]); + game.height = atoi(argv[4]); + iterations = atoi(argv[5]); + log_each_step = atoi(argv[6]); + threads = atoi(argv[7]); + } else { + printf("Usage: ./gol simulate \n"); + filename = "output/out.bin"; + game.height = 10; + game.width = 10; + iterations = 5; + log_each_step = 0; + threads = 1; + } + + double global_start = omp_get_wtime(); + + // Allocate space for current grid (1 byte per tile) + game.grid = malloc(sizeof(unsigned char*) * (game.height+(2*game.padding))); + for (int i = 0; i < game.height+(2*game.padding); i++) { + game.grid[i] = malloc(sizeof(unsigned char) * (game.width+(2*game.padding))); + memset(game.grid[i], 0, game.width+(2*game.padding)); + } + + if (strcmp(filename, "random") == 0) { + randomize(&game); + } else { + read_in(filename, &game); + } + + char iteration_file[1024]; + double time_computing_life = 0; + double start, end; + + for (int i = 0; i <= iterations; i++) { + if (i > 0) { + // Iteration 0 is just the input board + start = omp_get_wtime(); + next(&game, threads); + end = omp_get_wtime(); + time_computing_life += ((double) (end - start)); + } + if (log_each_step) { + #if VERBOSE == 1 + printf("\n===Iteration %i===\n", i); + for (int y = game.padding; y < game.height+game.padding; y++) { + for (int x = game.padding; x < game.width+game.padding; x++) { + printf("%s ", game.grid[y][x] ? "X" : " "); + } + printf("\n"); + } + printf("===End iteration %i===\n", i); + #endif + sprintf(iteration_file, "output/iteration-%07d.bin", i); + write_out(iteration_file, &game); + } + } + double total_clock_time = ((double) (omp_get_wtime() - global_start)); + printf("\n===Timing===\nTime computing life: %f\nClock time: %f\n", time_computing_life, total_clock_time); +} + +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/serial/Makefile b/serial/Makefile new file mode 100644 index 0000000..e90dc23 --- /dev/null +++ b/serial/Makefile @@ -0,0 +1,54 @@ +CC ?= gcc + +SRC_PATH = src +BUILD_PATH = build +BIN_PATH = $(BUILD_PATH)/bin + +BIN_NAME = gol + +SRC_EXT = c + +SOURCES = $(shell find $(SRC_PATH) -name '*.$(SRC_EXT)' | sort -k 1nr | cut -f2-) +OBJECTS = $(SOURCES:$(SRC_PATH)/%.$(SRC_EXT)=$(BUILD_PATH)/%.o) +DEPS = $(OBJECTS:.o=.d) + +COMPILE_FLAGS = -Wall -g -std=c99 +INCLUDES = -I include/ +LIBS = + +.PHONY: default_target +default_target: release + +.PHONY: release +release: dirs + @$(MAKE) all + +.PHONY: dirs +dirs: + @echo "Creating directories" + @mkdir -p $(dir $(OBJECTS)) + @mkdir -p $(BIN_PATH) + +.PHONY: clean +clean: + @echo "Deleting $(BIN_NAME) symlink" + @$(RM) $(BIN_NAME) + @echo "Deleting directories" + @$(RM) -r $(BUILD_PATH) + @$(RM) -r $(BIN_PATH) + +.PHONY: all +all: $(BIN_PATH)/$(BIN_NAME) + @echo "Making symlink: $(BIN_NAME) -> $<" + @$(RM) $(BIN_NAME) + @ln -s $(BIN_PATH)/$(BIN_NAME) $(BIN_NAME) + +$(BIN_PATH)/$(BIN_NAME): $(OBJECTS) + @echo "Linking: $@" + $(CC) $(OBJECTS) -o $@ ${LIBS} + +-include $(DEPS) + +$(BUILD_PATH)/%.o: $(SRC_PATH)/%.$(SRC_EXT) + @echo "Compiling: $< -> $@" + $(CC) $(COMPILE_FLAGS) $(INCLUDES) -MP -MMD -c $< -o $@ diff --git a/serial/include/create_grid.h b/serial/include/create_grid.h new file mode 100644 index 0000000..45ac891 --- /dev/null +++ b/serial/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/serial/include/file.h b/serial/include/file.h new file mode 100644 index 0000000..b2db380 --- /dev/null +++ b/serial/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/serial/include/game.h b/serial/include/game.h new file mode 100644 index 0000000..1896daa --- /dev/null +++ b/serial/include/game.h @@ -0,0 +1,20 @@ +#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); +void next(struct GAME* game); +void update(struct GAME* game, int x1, int x2, int y1, int y2); +void randomize(struct GAME* game); + +#endif // GAME_H diff --git a/serial/src/create_grid.c b/serial/src/create_grid.c new file mode 100644 index 0000000..d6a5b94 --- /dev/null +++ b/serial/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][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); + } + + unsigned char** grid = malloc(sizeof(unsigned char*) * game.height); + for (int y = 0; y < game.height; y++) { + grid[y] = malloc(sizeof(unsigned char*) * game.width); + printf("Row %i: ", y); + for (int x = 0; x < game.width; x++) { + char temp; + scanf("%i%c", (unsigned int*)&grid[y][x],&temp); + } + } + game.grid = grid; + write_out(filename, &game); + print_grid(&game); +} diff --git a/serial/src/file.c b/serial/src/file.c new file mode 100644 index 0000000..3ecb613 --- /dev/null +++ b/serial/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->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->padding, sizeof(unsigned char), game->width, file); + } + fclose(file); +} diff --git a/serial/src/game.c b/serial/src/game.c new file mode 100644 index 0000000..2921e3c --- /dev/null +++ b/serial/src/game.c @@ -0,0 +1,53 @@ +#include "game.h" + +int neighbors(struct GAME* game, int x, int y) { + 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 && (y+dy) > 0 && (x+dx) < game->width+(game->padding*2) && (y+dy) < game->height+(game->padding*2)) { + if (game->grid[y+dy][x+dx]) { + n++; + } + } + } + } + + return n; +} + +void next(struct GAME* game) { + unsigned char** newGrid = malloc(sizeof(unsigned char*) * (game->height+(game->padding*2))); + int size = sizeof(unsigned char) * (game->width+(game->padding*2)); + for (int y = 0; y < game->height+(game->padding*2); y++) { + newGrid[y] = malloc(size); + memset(newGrid[y], 0, size); + } + + for (int y = 0; y < game->height+(game->padding*2); y++) { + for (int x = 0; x < game->width+(game->padding*2); x++) { + int my_neighbors = neighbors(game, x, y); + if (game->grid[y][x]) { + if (my_neighbors < 2 || my_neighbors > 3) { + newGrid[y][x] = 0; + } else { + newGrid[y][x] = 1; + } + } else { + if (my_neighbors == 3) { + newGrid[y][x] = 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][x] = rand() & 1; + } + } +} diff --git a/serial/src/main.c b/serial/src/main.c new file mode 100644 index 0000000..f4c8141 --- /dev/null +++ b/serial/src/main.c @@ -0,0 +1,103 @@ +#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 10 +//#define VERBOSE 1 +#define SEED 100 + +void simulate(int argc, char** argv) { + srand(SEED); + char* filename; + struct GAME game; + game.padding = PADDING; + int iterations, log_each_step; + if (argc == 7) { + filename = argv[2]; + game.width = atoi(argv[3]); + game.height = atoi(argv[4]); + iterations = atoi(argv[5]); + log_each_step = atoi(argv[6]); + } else { + printf("Usage: ./gol simulate \n"); + filename = "output/out.bin"; + game.height = 10; + game.width = 10; + iterations = 5; + log_each_step = 0; + } + + clock_t global_start = clock(); + + // Allocate space for current grid (1 byte per tile) + game.grid = malloc(sizeof(unsigned char*) * (game.height+(2*game.padding))); + for (int i = 0; i < game.height+(2*game.padding); i++) { + game.grid[i] = malloc(sizeof(unsigned char) * (game.width+(2*game.padding))); + memset(game.grid[i], 0, game.width+(2*game.padding)); + } + + if (strcmp(filename, "random") == 0) { + randomize(&game); + } else { + read_in(filename, &game); + } + + char iteration_file[1024]; + double time_computing_life = 0; + clock_t start, end; + + for (int i = 0; i <= iterations; i++) { + if (i > 0) { + // Iteration 0 is just the input board + start = clock(); + next(&game); + end = clock(); + time_computing_life += ((double) (end - start)) / CLOCKS_PER_SEC; + } + if (log_each_step) { + #if VERBOSE == 1 + printf("\n===Iteration %i===\n", i); + for (int y = game.padding; y < game.height+game.padding; y++) { + for (int x = game.padding; x < game.width+game.padding; x++) { + printf("%s ", game.grid[y][x] ? "X" : " "); + } + printf("\n"); + } + printf("===End iteration %i===\n", i); + #endif + sprintf(iteration_file, "output/iteration-%07d.bin", i); + write_out(iteration_file, &game); + } + } + double total_clock_time = ((double) (clock() - global_start)) / CLOCKS_PER_SEC; + printf("\n===Timing===\nTime computing life: %f\nClock time: %f\n", time_computing_life, total_clock_time); +} + +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; +}