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.
