[Barrelfish-users] Run application on multiple cores simultaneously

Simon Gerber simon.gerber at inf.ethz.ch
Tue Oct 21 09:27:25 CEST 2014

Hi Vinay,

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 
domain_thread_create_on(target_core_id, thread_start_func, 
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,
-- Simon

On 21.10.2014 08:20, Vinay Kumar wrote:
> Hi,
> 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.
> Thanks
> Vinay
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users

More information about the Barrelfish-users mailing list