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!
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.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
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.