2015-10-29 1:14 GMT+01:00 Antti Kantee <[email protected]>:

> On 28/10/15 17:56, Vincent Schwarzer wrote:
>
>> *First I want to say OpenMP seems to work now !!!! :) *
>>
>
> Great to hear (and kudos for presenting the results immediately, very
> important for a thesis ;)!  Congrats for being [to the best of my
> knowledge] the first person to use OpenMP on the Rumprun unikernel (maybe
> even on any unikernel?)


Awesome! I also did some more tests with the Rodinia Benchmark Suite
(Benchmarks  i.a. written in OpenMP (kmeans,gaussblur,...) and all seem to
work so far.

>
> Yes I'm on Xen and its working now. I have tested it with xen_pv / xen_pci
>> both seem to work with the small test script. :) Couldn't test rumprun hw
>> yet.
>>
>
> Usually people find hw a lot easier, since qemu is ubiquitously available,
> whereas installing a xen dom0 typically takes much more effort.  Since our
> goal is to make running Rumprun/hw really trivial for testing purposes, I'm
> curious to know if there's a reason you couldn't test it yet, apart from
> simply not having time.

I couldn't test it yet since the qemu seems borked i.e. something is wrong
in the configuration. I didn't had time to have a look into it yet but I
 will try to fix it today and report my test results of rumpkernel back
when I have them.


>
> Next step would be to bring OpenMP into rumkernel release. After a quick
>> glance over the rumpkernel repositories I should start in buildrump.sh is
>> that right? Any hints appreciated as always. :)
>>
>
> You'll have to educate us a bit first (or at least refresh memories). Does
> OpenMP support involve anything more than more than libgomp, and is libgomp
> tied to the version of gcc?
>
> At any rate, we don't ship compilers, so the the best place would be to
> treat libgomp as a package.  Assuming compiler version dependency, you'd
> have to teach the package to fetch the right version of compiler sources,
> which I think is slightly unorthodox in a packaging system, but it should
> work.
>
> All functionality/ files necessary are in libgomp.a / libgomp.la + header
files but it is in fact tied to the version of gcc since e.g. versions
before Gcc 4.9 support OpenMP 3.x and 4.9 onwards use OpenMP 4.x. So I have
to pull the proper branch of the GCC source files to compile OpenMP.

I was asking since you also ship with libraries like pthread which is build
during the rump-build process. But I have still open points how to approach
this (in general):


   - Libraries in a separate folder since it is a package and provide
   instructions about how to compile / link it?
   - Other approach would be to copy the library and header files into the
   appopriate rumprun folders.
   Still have to look in which folders the library would be necessary
   E.g. (Xen):

   ./rumprun/rumprun-x86_64/lib/rumprun-xen/libpthread.a
   ./rumprun/rumprun-x86_64/lib/libpthread.a
   ./obj-amd64-xen/buildrump.sh/lib/libpthread/libpthread.a
   ./obj-amd64-xen/dest.stage/rumprun-x86_64/lib/rumprun-xen/libpthread.a
   ./obj-amd64-xen/dest.stage/rumprun-x86_64/lib/libpthread.a

   Advantage: User could compile OpenMP programs by using -lgomp and save
   themself the Include and Link dance with the gcc which is quite picky when
   it comes to the order of the arguments (as seen before).

I currently favor the second approach for the convenience of use but also
don't have a overview over the whole rumpkernel eco system / vision.

Reply via email to