This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgomp/78289] New: OpenMP produces high CPU load if used in more than one process
- From: "s dot schueller at ids-imaging dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 10 Nov 2016 13:48:40 +0000
- Subject: [Bug libgomp/78289] New: OpenMP produces high CPU load if used in more than one process
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78289
Bug ID: 78289
Summary: OpenMP produces high CPU load if used in more than one
process
Product: gcc
Version: 6.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgomp
Assignee: unassigned at gcc dot gnu.org
Reporter: s.schueller@ids-imaging.de
CC: jakub at gcc dot gnu.org
Target Milestone: ---
Created attachment 40014
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40014&action=edit
gcc -O2 omp.c -lpthread -fopenmp -o omp
We discovered that our application performs very bad on Linux when two or more
processes are started which use OpenMP.
I've removed line by line from the source to find the bottleneck until there
were no more lines to remove.
I attached a simple program that exposes the problem.
In the first step eight Threads are created which run a empty openmp for loop
10000 times. After that eigth Processes are created using fork() each running
the same loop 10000.
The Thread based version takes about 1 second and the fork() version 3 minutes
30 seconds on a i7 4790
Problem could be reproduced on ubuntu 12.04, 16.04
compile attachment:
gcc -O2 omp.c -lpthread -fopenmp -o omp