Basics: Boost.Interprocess and Boost.MPI

20 Dec
2010
20 Dec
'10
8:48 p.m.
I am a newbie looking for guidance using Boost libraries regarding shared-memory and parallel processing. First, my task is to run two programs at the same time that need to share a data structure. Which boost libraries will help me? Also, any clarification between parallel processing, multi-thread processing, and shared-memory would be greatly appreciated. Thanks!

20 Dec
20 Dec
10:18 p.m.
From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Fred Lawton Sent: 20 December 2010 20:48 To: boost-users@lists.boost.org Subject: [Boost-users] Basics: Boost.Interprocess and Boost.MPI I am a newbie looking for guidance using Boost libraries regarding shared-memory and parallel processing. First, my task is to run two programs at the same time that need to share a data structure. Which boost libraries will help me? Also, any clarification between parallel processing, multi-thread processing, and shared-memory would be greatly appreciated. Thanks! ------------- >From another newbie: * multi-thread processing: when you have more than 1 thread of execution, typically (always?) within 1 process. All the threads have access to the same virtual memory. boost::thread helps with this. * shared-memory: shared-memory systems typically refer to different processes on the same machine and 1 of the mechanisms (there are others: local sockets ...) that allow these processes to share data . boost::interprocess helps with this. AFAIU, boost::interprocess is only for processes on the same machine. * mpi: message passing interface is an API that allows processes on the same or different machines to communicate. there are send and receive functions, broadcast, gather and reduce ... There are mpi implementations (such as openmpi and vendor-specific ones) one of which you need to select, then boost::mpi which is an elegant c++ layer on top of the mpi implementation (and you need to build boost::mpi on top of openmpi for e.g). * parallel processing: general concept of many things (threads, processes) running on the same or different core, or CPU or machines doing work together in a strongly or lightly synchronous way
5176
Age (days ago)
5176
Last active (days ago)
1 comments
2 participants
participants (2)
-
Fred Lawton
-
Hicham Mouline