[Barrelfish-users] Run application on multiple cores simultaneously
simon.gerber at inf.ethz.ch
Tue Oct 21 09:27:25 CEST 2014
There's a few different ways of running an application on multiple cores:
1) Write your application in a server-client (or peer-to-peer) model and
launch an instance of it on all the cores you want to use. In this case
one instance of your application will still only run on a single core
and you will have to set up communication channels using the provided
functionality (e.g. create your own flounder interface).
2) "Span" your application (domain) across multiple cores. This is how
you create a shared-memory program that runs on multiple cores. You can
do this as is demonstrated in usr/examples/xmpl-span/xmpl-span.c: Use
domain_new_dispatcher(target_core_id, callback function, callback fn
argument) to create a dispatcher for your domain on the new core (the
core with id target_core_id) and then use
thread_start_func_arg) to create a thread on the core with id
Spanning domains currently has some implementation issues; in particular
you need to be careful where and when you map new memory because not all
the user-space metadata is synchronized between dispatchers of the same
domain on different cores.
Hope this helps,
On 21.10.2014 08:20, Vinay Kumar wrote:
> When we run an application on Barrelfish it runs on core 0 by default,
> I would like to know how to run the same app using multiple cores.
> The idea here is to run a Benchmark tool using all the available cores
> in the system to get the actual performance of the system on Barrelfish.
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
More information about the Barrelfish-users