From 093ffe93d0ab486229e36b2a97466ddd51e9fd0e Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 28 Apr 2025 13:37:13 -0400 Subject: parallelize compressor filter with openmp --- Makefile | 4 ++-- widget.c | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 6ba8c06..3673140 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -CFLAGS = -std=c99 -I ./ -Wall -Wextra -pedantic -Wno-deprecated-declarations -D_XOPEN_SOURCE=700L -LDFLAGS = -lSDL2 -lSDL2_ttf -lm +CFLAGS = -std=c99 -I ./ -fopenmp -Wall -Wextra -pedantic -Wno-deprecated-declarations -D_XOPEN_SOURCE=700L +LDFLAGS = -lSDL2 -lSDL2_ttf -lm -fopenmp SRC = main.c microui.c renderer.c widget.c ui.c unit.c engine.c compressor.c eprintf.c cwalk.c toml.c util.c OBJ = ${SRC:.c=.o} diff --git a/widget.c b/widget.c index faf57cb..79e6028 100644 --- a/widget.c +++ b/widget.c @@ -3,6 +3,8 @@ #include #include +#include + #include "microui.h" #include "unit.h" #include "compressor.h" @@ -245,8 +247,8 @@ sc_filter(w_Select_Compressor *select) { series = select->series_filter; model = select->model_filter; - /* TODO: parallelize */ select->nfiltered = 0; + #pragma omp parallel for ordered for (i = 0; i < select->n; i++) { comp = &select->comps[i]; @@ -258,6 +260,7 @@ sc_filter(w_Select_Compressor *select) { continue; } + #pragma omp ordered select->filtered[select->nfiltered++] = i; } } -- cgit v1.2.3