Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3691688
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T04:10:34+00:00 2026-05-19T04:10:34+00:00

I have a program which performs a Monte Carlo-type simulation. Currently I have written

  • 0

I have a program which performs a Monte Carlo-type simulation. Currently I have written version of the program against both OpenMP and OpenCL and wish to know the best approach for distributing the workload between the computers on my LAN.

My first idea was to write a sockets-based client/server application whereby the server would divide up work units to send to the clients, which would then complete them, and send back the results. In order to leverage systems with fast CPUs and GPUs I could run multiple instances of the client program on a system (a -omp and a -ocl executable).

However, sockets programming is seldom enjoyable and a pain to get right (deciding on a protocol etc.). Hence I decided to look at MPI, which seems nice, although am unsure how well it works when you want to include CPUs + GPUs into the mix or how well my server-prescribed ‘work unit’ fits in. (The process of determining which regions of the problem space to sample is non-trivial, hence the requirement for the sentient master process to coordinate things.)

Hence, I am interested to know if there are any other options available to me or what others have decided on in a similar situation.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T04:10:34+00:00Added an answer on May 19, 2026 at 4:10 am

    Your description is a little vague, but it certainly sounds doable with MPI. The addition of GPU’s shouldn’t matter, since MPI doesn’t concern itself with what code is running apart from the MPI calls themselves (I once wrote an MPI app that used Qt for visualisation and threading, for instance).

    The biggest caveat I can see is that an MPI program consists of multiple instances of one program: if your OpenMP and OpenCL solutions are separate applications, you can’t just spawn a couple of both and have them all running together. You can, however, write a simple wrapper application that, for instance, spawns one thread with the OpenMP solution, and another thread with the OpenCL solution. Running this wrapper app with MPI would achieve the desired result, but then of course communication may get a little tricky (sharing communicator info between threads, etc).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a program which deliberately performs a divide by zero (and stores the
I have a c++ program which performs one function. It loads a large data-file
I have a high-speed ADC data capture/analysis program which performs poorly on older computers.
I have a program which looks in source code, locates methods, and performs some
I have a program which needs to behave slightly differently on Tiger than on
I have a program which has some Textareas / Labels these can be anywhere
I have a program which needs installing on windows 64 boxes. Most of the
I have a program which only needs a NotifyIcon to work as intended. So
Consider this problem: I have a program which should fetch (let's say) 100 records
I have an AppleScript program which creates XML tags and elements within an Adobe

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.