Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to run MPI/distributed programs in imunes #54

Closed
KroArtem opened this issue Mar 11, 2016 · 11 comments
Closed

How to run MPI/distributed programs in imunes #54

KroArtem opened this issue Mar 11, 2016 · 11 comments

Comments

@KroArtem
Copy link

Probably it's not the right place to post question but I didn't find any other ways to contact devs (irc? mail?)

Is it possible to install an MPI application on every emulated PC? for example, Linpack/HPL? If yes, what steps should I do? (didn't manage to find this information in wiki)

As far as I understand, I have to modify default docker image and install there required dependencies and the application itself. Then I have to add some information about hosts/ip so that MPI will know where to go.

Some other unrelated questions:

  1. Is it possible to have one PC on another physical host/machine?
  2. What do these parameters in link configuration: duplicate and width? Does duplicate mean the number(percentage) of duplicated packets sent?
@KroArtem
Copy link
Author

Looks like comments in this ticket contain some answers to my question.

@denisSal
Copy link
Member

Hello!

First of all: sorry for answering so late. It's best to ask any questions here so it's publicly available. I guess we will need to expand our wiki with some commonly asked questions, or make a FAQ.

If #51 did not answer any of your questions, feel free to ask here.

To answer your other questions:

  1. I don't quite understand your question: you want a machine running a topology, but you want one node from this topology to be on another machine? If this is what you mean, that's not possible. What is the reason you want it that way, maybe I can help you achieve the same thing in another fashion?
  2. Yes, duplicate duplicates packages using netem command line tool tc. The width parameter is just the width of the line in the GUI. :)

@KroArtem
Copy link
Author

Ok, I'll try to edit dockerfile and add this or that mpi application.

A FAQ or some kind of brief documentation would be really good. :)

The reason for running one node on another machine can be the following: my laptop may not be able to handle all the nodes and I want to move some load to another machine.

Btw, I remember there is UML (user-mode linux) in dependencies, is it really used? After looking at the wiki I thought it is more or less outdated technology.

@denisSal
Copy link
Member

IMUNES is not distributed (yet), but you can try running two experiments on different computers and try to connect them with the help of External interface and/or External connection nodes and some bridging with your physical interface?

@KroArtem
Copy link
Author

If I have time I'll try this, but it's not high priority.

@KroArtem
Copy link
Author

KroArtem commented Apr 8, 2016

Ok, finally I managed to run two nodes and launch an mpi benckmark on them. However, I had several problems with mpich and switched to openmpi. Moreover, I had to set ip and aliases in /etc/hosts and generate ssh keys for passwordless ssh. (Don't know how to generate these things during container's creation)

Other things I noticed: when BER is set an application (NAS Parallel Benchmark) doesn't work. When delay is set, it is multiplied by two. (I had delay set to 100 ms and ping was showing 200ms exactly, with 200ms delay ping was 400ms exactly). Another thing I noticed is that Wireshark doesn't see any connection between nodes and I cannot analyse traffic.

@denisSal
Copy link
Member

denisSal commented Apr 8, 2016

Glad to hear it's up and running!

Care to explain what needs to be done with ip and aliases so I can maybe help you setup the configuration? You can create ssh keys on the host machine and then copy them to the containers with a shell script by using hcp.

BER is set to what?
Delay is on the link, and ping measures request time + response time on the same link, so it's natural it's double.
What do you mean, Wireshark doesn't see connections? How exactly are you trying to analyze traffic?

@KroArtem
Copy link
Author

KroArtem commented Apr 8, 2016

First of all, I just found a nice image I should have found much earlier : NPB image

If I want to use several nodes with mpirun command, I have to write down nodes' ip and their aliases in /etc/hosts, for example

127.0.0.1    localhost    pc1
10.0.0.20    node2    pc2

and so on.
Regarding ssh-keygen: I'm not sure but it seems like I have to do passwordless ssh on both sides so that nodes will be able to communicate with each other.

Don't remember what was with BER, will recheck and write here. You're absolutely right about delays, my stupid fault. :)
Thanks a lot for your tips, I'll recheck those questions related to BER and Wireshark.

@KroArtem
Copy link
Author

KroArtem commented Jun 7, 2016

To fix problem with ssh connection, I added this not secure solution to dockerfile:

RUN mkdir /root/.ssh && ssh-keygen -t rsa -f /root/.ssh/id_rsa -N '' &&
 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys && echo "StrictHostKeyChecking no"
 >> /etc/ssh/ssh_config

It worked perfectly. Still haven't looked at BER issue, will investigate it later as it's not top priority. Anyway, I think this ticket can be closed.

@KroArtem KroArtem closed this as completed Jun 7, 2016
@KroArtem
Copy link
Author

KroArtem commented Jul 9, 2016

In case you're interested, IMUNES was used whilst writing this article: Distributed computing infrastructure based on dynamic container clusters that was presented on ICCSA'16 several days ago.
Moreover, another work related to IMUNES was presented yesterday on GRID'16, topic Virtual clusters as a way to experiment software. ;)

@denisSal
Copy link
Member

Wow, that's great! :D

We'll definitely check them out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants