2015-08-14 20:53 GMT+02:00 Antti Kantee <[email protected]>: > 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? >
I want to run different established performance benchmarking tools (e.g. STREAM) and real world applications used in web application stacks on Rumprun unikernel. At the end I want to compare the measurement results of these tools/applications to other platforms (e.g. OSv,Linux Native, Docker, ...) for a recommendation matrix for what kind of workload which platform is most suitable in a cloud/backend application context. Many of these application I want to use are utilizing OpenMP to fork new threads for each core and join the results at the end. > > - 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). > What is the difference between x86_64-rumprun-netbsd-gcc in the app-tools folder and my standard gcc (4.9) on my system which can compile OpenMP applications, when there is no complier supplied by rumprun itself? > > - 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. > > Another framework I had in mind was OpenMPI which also can be used for parallel programming on shared memory systems. Thanks to anyone who can give me any references or pointers to progress further. :) Cheers, Vincent
