From ba20205706fa46b7c96f42285638d19b6dcb96f5 Mon Sep 17 00:00:00 2001 From: josh Date: Sat, 25 Oct 2008 21:41:26 +0000 Subject: [PATCH] parallel version with timing working git-svn-id: svn://anubis/gvsu@207 45c1a28c-8058-47b2-ae61-ca45b979098e --- cs677/pa3/edge-detect.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cs677/pa3/edge-detect.cc b/cs677/pa3/edge-detect.cc index b8cb494..6df3d65 100644 --- a/cs677/pa3/edge-detect.cc +++ b/cs677/pa3/edge-detect.cc @@ -1,4 +1,6 @@ +#include /* gettimeofday() */ +#include #include #include #include @@ -60,12 +62,25 @@ int main(int argc, char * argv[]) delete[] bmp_data; unsigned char * edge_data = new unsigned char[width * height * 3]; + + struct timeval before, after; + gettimeofday(&before, NULL); /* Start timing */ + applyEdgeDetection(padded_data, edge_data, width, height, threshold_level); + + gettimeofday(&after, NULL); /* Stop timing */ + + /* Write the output BMP image */ BMP outputImage(outputFileName.c_str(), width, height, edge_data); + double time_before = before.tv_sec + before.tv_usec / 1000000.0; + double time_after = after.tv_sec + after.tv_usec / 1000000.0; + double diff = time_after - time_before; + cout << "Elapsed time: " << diff << " seconds." << endl; + delete[] padded_data; delete[] edge_data; } @@ -96,6 +111,7 @@ void applyEdgeDetection(unsigned char * padded_data, unsigned char * edge_data, (unsigned char (*)[height+2][width+2]) padded_data; unsigned char (*out)[height][width][3] = (unsigned char (*)[height][width][3]) edge_data; +#pragma omp parallel for for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++)