Re: [QUESTION] Execute OpenMP Application on Rump Kernel?

  • From: Antti Kantee <pooka@xxxxxx>
  • To: rumpkernel-users@xxxxxxxxxxxxx
  • Date: Fri, 14 Aug 2015 18:53:06 +0000

On 14/08/15 15:59, Vincent Schwarzer wrote:

Hi,

I wanted to execute an application (STREAM Benchmark) on an Rump Kernel
that uses OpenMP. When I try to compile the program with
"x86_64-rumprun-netbsd-gcc
-O2 -fopenmp stream.c -o stream_c.exe" I get following error "/usr/bin/ld:
cannot find -lgomp".

So hence my questions:

- Is it possible to execute programs that use OpenMP on Rump Kernels?

Nobody knows (yet ;). I'm not intimately familiar with how OpenMP works, and it's been almost 10 years since I last ran into it at all, but I guess what you describe could work.

What, specifically, do you want to accomplish? Using a Rumprun unikernel as the runtime for an OpenMP node on the cloud, or something else?

- If yes, how do I compile programs that use OpenMP with the supplied
cross compiler?

I assume that you have to fetch the sources of the compiler that you're using and crosscompile libgomp first. I also assume that libgomp is tied to the compiler version, so not sure how much we can automate that, unless we provide a default compiler (which has sort of been an explicit no-no in our design so far -- you should be able to use any compiler you want to build rump kernels).

- Does Rump Kernel support other multithreading libraries e.g.
pthreads,... ?

Other than what? pthreads are supported out of the box, I'm not aware of anything else being supported. Well, there is "native" underlying threading, but that's not exposed to applications, and pthreads are really just native threads + some per-thread state.

Other related posts: