Make openMP tests

This commit is contained in:
NADAL Jean-Baptiste
2024-02-28 14:08:42 +01:00
parent 9f109ffe30
commit ac84d77d14
4 changed files with 10 additions and 4 deletions

View File

@@ -1,10 +1,12 @@
cmake_minimum_required(VERSION 3.14) cmake_minimum_required(VERSION 3.19)
project(raytracing_challenge project(raytracing_challenge
VERSION 0.1 VERSION 0.1
DESCRIPTION "Raytracing Challenge in C++" DESCRIPTION "Raytracing Challenge in C++"
) )
find_package(OpenMP)
add_subdirectory(raytracing) add_subdirectory(raytracing)
add_subdirectory(apps) add_subdirectory(apps)
add_subdirectory(tests) add_subdirectory(tests)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.14) cmake_minimum_required(VERSION 3.19)
project(main) project(main)
@@ -15,4 +15,4 @@ add_executable(chapter_07 chapter_07.cpp)
target_link_libraries(chapter_07 PRIVATE raytracing gcov) target_link_libraries(chapter_07 PRIVATE raytracing gcov)
add_executable(chapter_09 chapter_09.cpp) add_executable(chapter_09 chapter_09.cpp)
target_link_libraries(chapter_09 PRIVATE raytracing gcov) target_link_libraries(chapter_09 PRIVATE raytracing gcov OpenMP::OpenMP_CXX)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.14) cmake_minimum_required(VERSION 3.19)
project(raytracing) project(raytracing)

View File

@@ -29,11 +29,14 @@
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
#include <cmath> #include <cmath>
#include <omp.h>
#include "camera.h" #include "camera.h"
using namespace Raytracer; using namespace Raytracer;
#pragma omp parallel for num_threads(omp_get_num_procs())
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
Camera::Camera(void) : m_h_size(0), m_v_size(0), m_field_of_view(0), m_half_width(0), m_half_height(0), m_pixel_size(0) Camera::Camera(void) : m_h_size(0), m_v_size(0), m_field_of_view(0), m_half_width(0), m_half_height(0), m_pixel_size(0)
@@ -178,6 +181,7 @@ Canvas Camera::render(const World &a_world)
{ {
Canvas the_image(m_h_size, m_v_size); Canvas the_image(m_h_size, m_v_size);
#pragma omp parallel for shared(the_image)
for (int y = 0; y < m_v_size - 1; y++) for (int y = 0; y < m_v_size - 1; y++)
{ {
for (int x = 0; x < m_h_size - 1; x++) for (int x = 0; x < m_h_size - 1; x++)