MPI run on external network - linux

I'm new to MPI and I wrote a program to calculate large factorials over multiple processors. I tested the program on my local network with only 2 machine. ie. a laptop and my PC and its working perfectly.
Now I am trying to run the program over the internet on my friend's PC. Everything is installed perfectly. I already configure the router for port forwarding and I can ssh with to a user account.
I'm using mpicc to compile the program and it works and i also successfully copied the executable file to the external machine through scp. My problem is when i run the command mpirun -hostfile hostlist -np 2 fname. the process is stucked and i get only a blinking cursor on the terminal.
can someone explain me why this is happening?
Thanks.

As soon as you didn't provide any code snippet,
I'll just list what may be the reason, probably there are others too, the best way will be that you debug your code, and see where it is stuck
The reasons can be several
Code issue, wrong handling of special cases
Network issue, wrong configuration for a specific port, firewall
configuration etc.
etc

Related

how to enable wsl to respond to broadcast ping request

I was using WSL to run ROS commands, and at a point i had to enable system to respond to broadcast icmp requests (for a multi master kind of a setup) i.e. on linux i had to make sure
cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
returns 0. but WSL does not contain such a file, so i was thinking of enabling it on windows. All the sources i have gone through suggest me to add a rule to firewall but my system is not responding to broadcast ping even when my system's firewall is turned off(domain, private and public have been turned off same with my buddy who is no the same network). i am using an android phone's mobile hotspot to check this.
it would be great if someone could help me on this.
thanks in advance.
I asked something similar
I don't know how to do it purely on WSL. But on windows you have to start the "TCPSVCS.EXE" process. located on System32

Trying to determine how to run Windows app on Wine in command line mode

We have written a program which needs to run all the time that has a user interface (but is not necessary for running) under WINE on Linux. Want to sort of treat like Windows Service.
We have tried numerous options found in various places on the internet. Options like --nogui or /nogui but it does not appear to work.
Has anyone done this and been successful before?
Have you tried?
screen wine myapp.exe &
Your application need to run an infinite cycle so do not terminate.
Regards

Test and Debug a driver

All, Forgive me I am the beginner of the WDK development, I was reading some tutorial from msdn in here
and the read says
Typically when you test and debug a driver, the debugger and driver
run on separate computers. The computer that runs the debugger is
called the host computer, and the computer that runs the driver is
called the target computer. The target computer is also called the
test computer.
So I was wondering if the host computer and target computer can be the same one ? thanks.
There is a possibility for live debugging in Windows Kernel debugger. Not all the commands of the debugger will be available (http://msdn.microsoft.com/en-us/library/windows/hardware/ff553382(v=vs.85).aspx).
Another option is to use two virtual machines and redirect the serial ports of those VMs through named pipe or TCP\IP. If you are just beginning and mostly playing with Toaster sample driver - this is more than enough.
It is always advicable to have a host pc and test pc seperate as
when you a developing a device driver you might end up crashing the system multiple times which might lead to hard disk failure and hence if host pc is same as test pc, you would lose all your data.

Keeping a X11 application alive, which I can disconnect from and reconnect to afterwards

I currently have a tiny, headless (and I certainly want to keep it that way :) ) Linux Virtual Machine set up with Vagrant and VirtualBox which, for testing, I want to run an X11 application (Firefox) whose output comes to Xming on my real machine. All that's hunky dory, working perfectly, but I'm not happy yet!
What I want to be able to do is do a few setup things, make sure everything's running correctly, then disconnect from the server and let the testing run it's course. If however something goes wrong, or I want to just check the current status of things (some of the tests may run into hours), I'd like to then hop back onto the server and point the X11 output to my machine again. But despite a good deal of Google-ing and learning loads about X11 that I didn't know a few hours ago, I can't find anything about choosing where the output of an X11 application goes, except at startup, ie;
DISPLAY=:10 firefox &
I had read some random blog post that Xephyr XServer did this (kind of act as an intermediate X11 buffer, which then redirects if you want it to, otherwise just outputs to /dev/null), but I can't find any other reference to it, or anything else doing that.
There's a program called Xpra that works sort of like "screen" but for X-sessions. It would start a separate X session from the main one, for the remote access, but you can connect/disconnect to it at will from the host machine.
http://www.xpra.org/
I currently have one acceptable way to do this, which will serve my purpose, I have a vnc4server running that takes firefox's output, and then I can connect and disconnect to that without any issue at all, just like a normal VNC server. This allows me to do what I want to do, but not how I want to do it. I'd like to be able to do this without the need of a VNC server at all.

How can I make Ubuntu successfully search for an environment variable for licenses?

I have Ubuntu 10.04, 10.10, and 11.10 in virtual machines on oracles virtual box that I am testing products on. The licenses for the software to run is on my machine which is assigned a static IP.
SO what I have done for all the other Linux distributions I have done testing with is assign the .bashrc file a line in the end like this: export LICENCE=27065#192.168.1.45 causing it to look in the network for my machine to check out and check in its licenses. I have done the same with Ubuntu but cant get it to work at all! So far Ubuntu seems to be the only one with this problem.
SO i figured that maybe it was a connectivity issue. perhaps some behind the scenes security factor that i didn't know about. Well turns out I can ping my machine on the network just fine which makes me a little more lost.
Any info on this or even some more troubleshooting tips would be greatly appreciated.
Is this a FlexLM license? It looks like it because of the port#hostname string.
LICENCE looks wrong, these products usually use LM_LICENSE_FILE or *$PRODUCTNAME*_LICENSE_FILE, see eg. http://opendtect.org/lic/endusermanual/chap12.htm
Check with telnet if this host/port is available: telnet 192.168.1.45 27065. It's possible that ping works but connecting to this specific port doesn't.
Depending on how you start the shell in, .bashrc is not used, do you see it when you echo the variable? If not, stick it in .bash_profile instead
Try setting FLEXLM_DIAGNOSTICS=3 as described in the link above.

Resources