Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have a laptopn Dell E6510. It has four real CPUs and 8GiB memory. I also have a PC it also has 4 CPUs and 8 GiB ram. On my laptop, I have fedora 19 and mpich. On the PC I have centos and mpich.
I want to know if there is any possibility that I can use the facilities of these two computers simultaneously for running my program. I mean is it possible to use 8 CPUs and 16GiB ram of these two devices together in parallel at the same time?
Yes, there are a lot of different solutions (I met with one of them in 1996 on HP-UX). Actually would be better to specify what do you really need. There are two different ways: 1. you can split your job into several tasks and you can execute those tasks on different hosts. 2. you will try to implement functions and invoke them (something like remote procedure call, RPC). Using C++ or java you can use a corba implementation (especially jacorb for java).
1996!!! So, there must be plenty of solutions right now. I'm happy.
The code I am running is written with fortran. I use mpich (mpif90 - mpirun), blas, lapack, blacks and scalapck to run it in parallel. I believe there is nothing I can do to split the job. So, I have to choose the second solution. Will you let me know about the sources I can read about this?
About my question above, someone told me that using memory across machines is often a failure and the speed would drop dramatically.
Does that mean, it is not worth the pain to try running a code on two machines?
yes, there is an overhead (looking for the available hosts, open connection and handle communication, etc). It is useful only if the original job is long enough (for example runs 2 hours on one host, but will run only 1 hour on two hosts. Overhead will require only a few seconds, minutes).
Of course it depends on the real situation therefore I cannot say what to do in your case.
Memory cannot be shared across machines.
probably you misunderstood. You can invoke the same function on both hosts (from one single process) and the result will be returned to the same process. Also you can use multithreading to use not only one but all the CPUs you have. Actually it is not memory sharing across machines but allowing to access all of the resources like memory and cpu (on both hosts). Probably you need to redesign your code to be able to use these advantages, but I'm not really sure about that.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.