mpiexec: unable to start all procs; may have invalid machine names - parallel-processing

I am new to MPI and MPICH.
I have installed mpich on two machines having : Ubuntu 10.04.2 LTS.
mpicc -v has version 1.2.1p1.
I have added entries in /etc/hosts for both client and master in both machines.
Added SSH configurations for passwordless remote ssh.
While running command :
mpiexec -np 3 -host master ./a.out : -np 3 -host client ./a.out
The system responds with
mpiexec: unable to start all procs; may have invalid machine names
remaining specified hosts:
107.109.110.219 (master)
107.108.87.33 (client)
Request you to please suggest if something is wrong.

You need to specify the host file for the MPI implementation as well. For OpenMPI you can have a look at the following page:
https://www.open-mpi.org/faq/?category=running#mpirun-hostfile
Here it is described how to set it up. I have linked the OpenMPI one because it is more clear. Here you can find a tutorial that uses MPICH and explains how to set up the host file:
http://mpitutorial.com/tutorials/mpi-hello-world/

I installed mpich initially by apt-get. I think this caused the stated problem.
To Fix I did following and it fixed the problem :
Uninstalled the mpich installed via apt-get.
Downloaded and compiled mpich v3.2 source as per steps of mpich user guide.
After this , one of the machines had a problem of missing libudev.so.0, as a temporary solution , installed libudev.so.1 and soft linked libudev.so.0 to it.
After these 3 steps, mpiexec is running properly for machines.

Related

Vagrant VMware Utility driver

First of all I'm sorry if someone already did this question, in this case please paste the link here because I didn't find anything.
I'm learning vagrant, using virtualbox i don't have problem in running VM, but if I would like to use VMware as provider. I encounter this message and I can't find a way to get out of this.
I think everything is well configured but obviously something is wrong.
When I launch vagrant up --provider=vmware_desktop, I have this error message:
Vagrant encountered an unexpected communications error with the
Vagrant VMware Utility driver. Please try to run the command
again. If this error persists, please contact support#hashicorp.com
I'm currently using Fedora 35
Operating System: Fedora Linux 35 (Workstation Edition)
Kernel: Linux 5.17.5-200.fc35.x86_64
Architecture: x86-64
I have followed this thread:
https://github.com/hashicorp/vagrant-vmware-desktop/issues/22
and someone had prepared a nice gist -- which I copied below just in case the gist link wasn't anymore.
My issue was mainly the Vagrant 2.2.19 which somehow was not ok with VMWare. 2.2.18 worked fine. Just make sure you follow the above gist step by step.
https://gist.github.com/sbailliez/f22db6434ac84eccb6d3c8833c85ad92
My issue was mainly the Vagrant 2.2.19 which somehow was not ok with VMWare. 2.2.18 worked fine. Just make sure you follow the above gist step by step.
Vagrant and VMWare Tech Preview on Apple M1 Pro
This document summarizes notes taken while to make the VMWare Tech preview work on Apple M1 Pro, it originated
from discussions in https://github.com/hashicorp/vagrant-vmware-desktop/issues/22
Installing Rosetta
First install Rosetta if not already done, this is needed to run x86 code:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
Installing Vagrant
Install Vagrant via brew or install it manually. Note that I use 2.2.18 as 2.2.19 did not work for me. (YMMV)
brew install vagrant#2.2.18
Installing VMWare Fusion Tech Preview
You will need to create an account on vmware as it needs user and key information that are user specific.
The registration process is kinda convoluted. Be careful about passwords as the password needs to be less than 20 characters and there are no error messages for this.
You can download the tech preview via the download page.
Once this is installed you will NEED to create a symlink as the vagrant vmware utility etc.. assumes that vmware is installed in a specific directory and the tech preview is installed in a different one.
ln -s /Applications/VMWare\ Fusion\ Tech\ Preview.app /Applications/VMWare\ Fusion.app
Installing Vagrant VMWare provider
It requires two steps. This is detailed in the documentation but follow the steps below:
First go to Vagrant vmware Utility and download the binary and install it. It says x86_64 but it is fine.
The direct link is:
https://releases.hashicorp.com/vagrant-vmware-utility/1.0.21/vagrant-vmware-utility_1.0.21_x86_64.dmg
It needs to be version 1.0.21
Next install the provider:
vagrant plugin install vagrant-vmware-desktop
Create a Vagrant file
Create a file Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "spox/ubuntu-arm"
config.vm.box_version = "1.0.0"
end
Run vagrant
vagrant up
and then
vagrant ssh
Hopefully this should work and you should find yourself with mostly everything working.
Troubleshooting
I have observed various issues that makes the whole experience unstable or creating conflicts.
vagrant 2.2.19 is broken
I have had issues trying to run vagrant 2.2.19. Use 2.2.18
vagrant-vmware provider forwarded ports bound
If you declare forwarding port on your box, for some reasons the provider persists them and keeps it bound in LISTEN state even after you do a vagrant halt.
You can check this using something like:
sudo lsof -i -P | grep LISTEN | grep 'vagrant-v'
You can see the ports are stored in:
cat /opt/vagrant-vmware-desktop/settings/portforwarding.json
To stop the provider use:
sudo launchctl unload -w /Library/LaunchDaemons/com.vagrant.vagrant-vmware-utility.plist
To start it again, use load instead of unload.
nfs exports conflicts
If your vagrant box uses nfs, it seems to pollute the /etc/exports file with duplicate or stale entries over time which will cause vagrant to get angry at you at some point. You may need to prune the entries. It seems related to vagrant#11418
I encountered this same issue you had with the architecture compatibility while trying to set up VM on my Mac M1. Found my solution in this GitHub thread
I just added this lines to the Vagrantfile
config.vm.provider :vmware_desktop do |v|
v.vmx["ethernet0.pcislotnumber"] = "160"
end

IPX Networking with DOS and DOSBox (under Raspbian)

My long-term-goal is to get Doom (version 1.1) running in 3 screen mode on a mix of hardware (1 x Pentium 3 under DOS 7.10 and 2 x Raspberry Pis under Raspbian).
I have DOS running LNE100TX (I can share the configuration files if that is helpful).
I enabled IPX in the configuration file started DOSBox under Raspbian.
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx=true
pi#raspberrypi:~$ dosbox
DOSBox version 0.74
Copyright 2002-2010 DOSBox Team, published under GNU GPL.
---
CONFIG:Loading primary settings from config file /home/pi/.dosbox/dosbox-0.74.conf
MIXER:No Sound Mode Selected.
ALSA:Can’t subscribe to MIDI port (65:0) nor (17:0)
MIDI:Opened device:none
I started the ipx server and mounted the drive in DOSBox
Z:\>ipxnet startserver 19900
IPX Tunneling utility for DosBox
IPX Tunneling Server started
Z:\>mount c ~/dos-games
Drive C is mounted as local directory /home/pi/dos-games/
I found ipxbox on Github which says:
ipxbox is a standalone DOSBox IPX server written in Go. DOSBox clients can connect to the server and play together.
A unique feature is that it is optionally able to bridge to real
physical networks, in a manner similar to a VPN. DOSBox clients can
communicate with each other on the server, but with this feature
enabled they can also communicate with physical IPX nodes on the
connected network. So emulated DOS clients should be able to play
games against real DOS machines connected to the same network.
So, I installed Go:
pi#raspberrypi:~ $ sudo apt-get install libpcap-dev
pi#raspberrypi:~ $ export GOPATH=/home/pi/work
pi#raspberrypi:~ $ export PATH=$PATH:$GOPATH/bin
pi#raspberrypi:~ $ sudo apt-get install golang
Then I attempted to install ipxbox:
pi#raspberrypi:~ $ go get github.com/fragglet/ipxbox
pi#raspberrypi:~ $ cd work
pi#raspberrypi:~ $ go build ipxbox.go
This is the message that I get when I run this command:
#github.com/google/gopacket/pcap
go/src/github.com/google/gopacket/pcap/pcap_unix.go:34:18: fatal error: pcap.h: No such file or directory
#include <pcap.h>
compilation terminated.
Perhaps this is obvious, but I'm not very familiar with Linux. Does anyone have any suggestions for what is causing this?
You need to install the pcap development packages.
sudo apt-get install libpcap-dev

Greenplum installation error

While installing greenplum we are getting below error after running gpcheck command
GPCHECK_ERROR : uname -r output is different among hosts.
on two machines we have installed centos6 and in one machine we have installed centos7.
for greenplum installation is it necessary all hosts should have same os version?
should we ignore this error and go ahead.?
You must have the same OS version on all the cluster machines. Greenplum home directory is used for installing gppkgs (add-ons) that are in fact packed rpms. Greenplum initializes rpm database inside of GPDB home directory for managing add-ons. Whenever you do "gpseginstall" (installation, expansion), GPDB copies the content of GPDB home directory to other hosts. However RPM database created on one version of OS is not valid on another, so you would get errors trying to install/list/remove packages there
In general, if you don't plan to use any gppkgs and use it merely for PoC purposes, this should work, but I would strongly recommend to use the same OS version on all the cluster hosts
It is recommended to have same OS (kernel). If it is not production environment you can give try ignoring it. I have never tested it.

Check if a python script is running on remote machine

I am running a python script on say machine A. Is there any way to know if the python script is running or not from another machine B from command line? I tried getting the process list from the task manager. But it does not show any information regarding this script though it is running( it only showed cmd through which the script is executing ).
This will be a three step process. Step 1 is only required because you are Windows. If you're Mac or Linux, they already come with Step 1 completed for you. Otherwise, this is completely cross-platform capable.
1) You need to remotely connect from Machine A to Machine B. One extremely popular way of doing this is SSH, which can be installed on Machine A and Machine B. The recommended way to do this is with FreeSSHd, which has been very well documented here: https://serverfault.com/questions/8411/what-is-a-good-ssh-server-to-use-on-windows
2) Install the paramiko SSH library for Python. This will allow you to connect to another machine, and execute any arbitrary command line command. On windows, you just need to install the binaries for paramiko and pycrypto/openssl. This also is well documented on SO here: installing paramiko on Windows
3) Decide how you want to harvest the process list. There are several ways which are well documented here: https://stackoverflow.com/questions/53489/how-do-you-list-all-processes-on-the-command-line-in-windows

I would like to find something like gkrellm for the Mac

I have a linux dev server I watch, and lately its chugging at some points so I'd like to keep a better eye on it. I used to use Gkrellm, but its been a pain to try get Gkrellm to build on my Mac.
Besides servering X remotely (which would not be optimal), I guess i'm looking for alternatives to Gkrellm.
I would like a program that will let me watch the I/O CPU, Memory, processes, etc of a remote server running Linux. I am on a Mac.
If you're looking for something simple, and almost certainly already installed on the Linux box, you could SSH into the Linux machine and use tools like top, vmstat, and lsof to see what it's up to.
If you still want to test Gkrellm on Mac, you can follow this procedure
# sudo port install gkrellm
If you have this error :
Error: Target org.macports.activate returned: Registry error: xorg-xproto 7.0.16_0 not registered as installed.
[...]
Error: Status 1 encountered during processing.
Do this
# sudo port clean xorg-xproto
# sudo port install xorg-xproto
And continue install
# sudo port install gkrellm
Now if you have this error :
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_gnome_gtk-doc/work/gtk-doc-1.11" && ./configure --prefix=/opt/local --with-xml-catalog=/opt/local/etc/xml/catalog " returned error 1
[...]
Error: Status 1 encountered during processing.
Do this
# sudo port clean gtk-doc
# sudo port install gtk-doc
And last
# sudo port install gkrellm
To start gkrellm
# gkrellm
You could use Growl for this purpose. It's possible to send Growl messages from a unix machine by using netgrowl.py, which masquerades as the growlnotify program, but all written in python.
You could then have a process running on the server that monitors the other bits, and posts notifications when limits are exceeded, or whatever.
It would be a hand-coded solution, but we are on Stack Overflow, so programming-related stuff is the go :)
(Oh, and the netgrowl.py page has a few links to similar projects in other languages, if that's your thing, too).
You are propably looking for a more rigid monitoring tool like zabbix. https://zabbix.org

Resources