Clustal 2 comes in two flavors: the command-line version Clustal W and the graphical version Clustal X. Precompiled executables for Linux, Mac OS X and Windows (incl. XP and Vista) of the most recent version (currently 2.1) along with the source code are available for download here. Install VirtualBox for Mac using Homebrew. Run brew cask install virtualbox in your Terminal. VirtualBox lets you run virtual machines on your Mac (like running Windows inside macOS, except for a Kubernetes cluster.) Skip to step three if everything has worked to this point. To use Tanzu Kubernetes Grid, you download and run the Tanzu Kubernetes Grid CLI on a local system, known as the bootstrap environment. The bootstrap environment is the laptop, host, or server on which the initial bootstrapping of a management cluster is performed. This is Scimark Processors series extending to clusters for Mac systems based on x86-64bit nodes. It aims to make a reasonable benchmark for clusters, showing and comparing their computing power.
The following tables compare general and technical information for notable computer clustersoftware. This software can be grossly separated in four categories: Job scheduler, nodes management, nodes installation and integrated stack (all the above).
General information[edit]
Software | Maintainer | Category | Development status | ArchitectureOCS | High-Performance/ High-Throughput Computing | License | Platforms supported | Cost | Paid support available |
---|---|---|---|---|---|---|---|---|---|
Accelerator | Altair | Job Scheduler | actively developed | Master/worker distributed | HPC/HTC | Proprietary | Linux, Windows | Cost | Yes |
Amoeba | No active development | MIT | |||||||
Base One Foundation Component Library | Proprietary | ||||||||
DIET | INRIA, SysFera, Open Source | All in one | GridRPC, SPMD, Hierarchical and distributed architecture, CORBA | HTC/HPC | CeCILL | Unix-like, Mac OS X, AIX | Free | ||
Enduro/X | Mavimax, Ltd. | Job/Data Scheduler | actively developed | SOA Grid | HTC/HPC/HA | GPLv2 or Commercial | Linux, FreeBSD, MacOS, Solaris, AIX | Free / Cost | Yes |
Ganglia | Monitoring | actively developed | BSD | Unix, Linux, Windows NT/XP/2000/2003/2008, FreeBSD, NetBSD, OpenBSD, DragonflyBSD, Mac OS X, Solaris, AIX, IRIX, Tru64, HPUX. | Free | ||||
Globus Toolkit | Globus Alliance, Argonne National Laboratory | Job/Data Scheduler | actively developed | SOA Grid | Linux | Free | |||
Grid MP | Univa (formerly United Devices) | Job Scheduler | no active development | Distributed master/worker | HTC/HPC | Proprietary | Windows, Linux, Mac OS X, Solaris | Cost | |
Apache Mesos | Apache | actively developed | Apache license v2.0 | Linux | Free | Yes | |||
Moab Cluster Suite | Adaptive Computing | Job Scheduler | actively developed | HPC | Proprietary | Linux, Mac OS X, Windows, AIX, OSF/Tru-64, Solaris, HP-UX, IRIX, FreeBSD & other UNIX platforms | Cost | Yes | |
NetworkComputer | Runtime Design Automation | actively developed | HTC/HPC | Proprietary | Unix-like, Windows | Cost | |||
OpenHPC | OpenHPC project | all in one | actively developed | HPC | Linux (CentOS) | Free | No | ||
OpenLava | Teraproc | Job Scheduler | actively developed | Master/Worker, multiple admin/submit nodes | HTC/HPC | GPL | Linux | Free | Yes |
PBS Pro | Altair | Job Scheduler | actively developed | Master/worker distributed with fail-over | HPC/HTC | AGPL or Proprietary | Linux, Windows | Free or Cost | Yes |
Proxmox Virtual Environment | Proxmox Server Solutions | Complete | actively developed | Open-source AGPLv3 | Linux, Windows, other operating systems are known to work and are community supported | Free | Yes | ||
Rocks Cluster Distribution | Open Source/NSF grant | All in one | actively developed | HTC/HPC | OpenSource | CentOS | Free | ||
Popular Power | |||||||||
ProActive | INRIA, ActiveEon, Open Source | All in one | actively developed | Master/Worker, SPMD, Distributed Component Model, Skeletons | HTC/HPC | GPL | Unix-like, Windows, Mac OS X | Free | |
RPyC | Tomer Filiba | actively developed | MIT License | *nix/Windows | Free | ||||
SLURM | SchedMD | Job Scheduler | actively developed | HPC/HTC | GPL | Linux/*nix | Free | Yes | |
Spectrum LSF | IBM | Job Scheduler | actively developed | Master node with failover/exec clients, multiple admin/submit nodes, Suite addOns | HPC/HTC | Proprietary | Unix, Linux, Windows | Cost and Academic - model - Academic, Express, Standard, Advanced and Suites | Yes |
Oracle Grid Engine | Univa | Job Scheduler | active Development moved to Univa Grid Engine | Master node/exec clients, multiple admin/submit nodes | HPC/HTC | Proprietary | *nix/Windows | Cost | |
SynfiniWay | Fujitsu | actively developed | HPC/HTC | ? | Unix, Linux, Windows | Cost | |||
TORQUE Resource Manager | Adaptive Computing | Job Scheduler | actively developed | Proprietary | Linux, *nix | Cost | Yes | ||
UniCluster | Univa | All in One | Functionality and development moved to UniCloud (see above) | Free | Yes | ||||
UNICORE | |||||||||
Univa Grid Engine | Univa | Job Scheduler | actively developed | Master node/exec clients, multiple admin/submit nodes | HPC/HTC | Proprietary | *nix/Windows | Cost | |
Xgrid | Apple Computer | ||||||||
Software | Maintainer | Category | Development status | Architecture | High-Performance/ High-Throughput Computing | License | Platforms supported | Cost | Paid support available |
Table explanation
- Software: The name of the application that is described
Technical information[edit]
Software | Implementation Language | Authentication | Encryption | Integrity | Global File System | Global File System + Kerberos | Heterogeneous/ Homogeneous exec node | Jobs priority | Group priority | Queue type | SMP aware | Max exec node | Max job submitted | CPU scavenging | Parallel job | Job checkpointing |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Enduro/X | C/C++ | OS Authentication | GPG, AES-128, SHA1 | None | Any cluster Posix FS (gfs, gpfs, ocfs, etc.) | Any cluster Posix FS (gfs, gpfs, ocfs, etc.) | Heterogeneous | OS Nice level | OS Nice level | SOA Queues, FIFO | Yes | OS Limits | OS Limits | Yes | Yes | No |
HTCondor | C++ | GSI, SSL, Kerberos, Password, File System, Remote File System, Windows, Claim To Be, Anonymous | None, Triple DES, BLOWFISH | None, MD5 | None, NFS, AFS | Not official, hack with ACL and NFS4 | Heterogeneous | Yes | Yes | Fair-share with some programmability | basic (hard separation into different node) | tested ~10000? | tested ~100000? | Yes | MPI, OpenMP, PVM | Yes |
PBS Pro | C/Python | OS Authentication, Munge | Any, e.g., NFS, Lustre, GPFS, AFS | Limited availability | Heterogeneous | Yes | Yes | Fully configurable | Yes | tested ~50,000 | Millions | Yes | MPI, OpenMP | Yes | ||
OpenLava | C/C++ | OS authentication | None | NFS | Heterogeneous Linux | Yes | Yes | Configurable | Yes | Yes, supports preemption based on priority | Yes | Yes | ||||
Slurm | C | Munge, None, Kerberos | Heterogeneous | Yes | Yes | Multifactor Fair-share | yes | tested 120k | tested 100k | No | Yes | Yes | ||||
Spectrum LSF | C/C++ | Multiple - OS Authentication/Kerberos | Optional | Optional | Any - GPFS/Spectrum Scale, NFS, SMB | Any - GPFS/Spectrum Scale, NFS, SMB | Heterogeneous - HW and OS agnostic (AIX, Linux or Windows) | Policy based - no queue to computenode binding | Policy based - no queue to computegroup binding | Batch, interactive, checkpointing, parallel and combinations | yes and GPU aware (GPU License free) | > 9.000 compute hots | > 4 mio jobs a day | Yes, supports preemption based on priority, supports checkpointing/resume | Yes, fx parallel submissions for job collaboration over fx MPI | Yes, with support for user, kernel or library level checkpointing environments |
Torque | C | SSH, munge | None, any | Heterogeneous | Yes | Yes | Programmable | Yes | tested | tested | Yes | Yes | Yes | |||
Univa Grid Engine | C | OS Authentication/Kerberos/Oauth2 | Certificate Based | Integrity | Arbitrary, e.g. NFS, Lustre, HDFS, AFS | AFS | Fully heterogeneous | Yes; automatically policy controlled (e.g. fair-share, deadline, resource dependent) or manual | Yes; can be dependent on user groups as well as projects and is governed by policies | Batch, interactive, checkpointing, parallel and combinations | Yes, with core binding, GPU and Intel Xeon Phi support | commercial deployments with many tens of thousands hosts | >300K tested in commercial deployments | Yes; can suspend job on interactive usage | Yes, with support of arbitrary parallel environments such as OpenMPI, MPICH 1/2, MVAPICH 1/2, LAM, etc. | Yes, with support for user, kernel or library level checkpointing environments |
Software | Implementation Language | Authentication | Encryption | Integrity | Global File System | Global File System + Kerberos | Heterogeneous/ Homogeneous exec node | Jobs priority | Group priority | Queue type | SMP aware | Max exec node | Max job submitted | CPU scavenging | Parallel job | Job checkpointing |
Table Explanation
- Software: The name of the application that is described
- SMP aware:
- basic: hard split into multiple virtual host
- basic+: hard split into multiple virtual host with some minimal/incomplete communication between virtual host on the same computer
- dynamic: split the resource of the computer (CPU/Ram) on demand
History and adoption[edit]
See also[edit]
Notes[edit]
External links[edit]
The challenge
We use a cluster of GNU/Linux-powered nodes behind a Cisco load balancer to serve some of our web sites. These nodes being quasi-identical (most config, filesystems, etc), we often need to apply the very same changes, via ssh, to each of them at once in our daily maintenance tasks.
ClusterSSH to the Rescue
ClusterSSH is a small Perl/TK utility that controls a number of xterm windows via a single graphical console window to allow commands to be interactively run on multiple servers over an ssh connection. This means that you type your shell commands once, and they simultaneously run on all of the servers ClusterSSH is connected to.
A perfect fit for our needs, but not quite limited to our higher end environment. Using ClusterSSH, you can control x number of computers via ssh, whether they are exact replicas of one another (cluster) or not. This can be especially useful in a computer lab environment, or with any large number of similar systems that you want to edit from the command line.
EG: You can easily run softwareupdate on OS X or yum/apt on Linux, or even download a file from a central server, on all the computers in your office at once and without the need for more elaborate or expensive graphical solutions.
For the record, there is another project on SourceForge that shares the same purpose and executable name (cssh), but that project has not seen a release since 2004, unlike ClusterSSH, which seems to be kept rather well up-to-date by its developer(s).
But wait, we're on OS X
ClusterSSH is an X11-based application, which Apple has been providing a port for OS X for years. But if you are on an Intel-based Mac, you might have been wondering where to find the said port for your architecture, since it is not an install option on the DVD provided with your new machine. Well, it is there, but the installer package is in fact in a directory hidden from the Finder.
To install Apple's X11 built for your MacIntel, simply do the following:
- mount the DVD that came with your Mac
- open a terminal window
- type
open /Volumes/[OSX_DVD]/System/Installation/Packages/
X11User.pkg
where[OSX_DVD]
is the volume name of the install DVD - go through the newly launched installer
- tada!
Maybe Apple thought their Universal Binary version was only half-baked (…), at least until the latest update they released on November 13, which was itself Intel-ready. Should you choose not to install the latter, you will be prompted to update X11 the next time you run Software Update.
The Perl install that comes bundled with OS X lacks one of the modules that ClusterSSH relies on to provide a small GUI window for you to type your distributed commands in: Tk. Depending on when you read this (2006-11-21), you might want to run a CPAN search for a newer version than the one I link to.
Installing Tk is quite easy if you are familiar with the terminal, and requires for you to have installed the Developer Tools that came bundled with OS X.
Dx Clusters For Mac
- get the latest Perl/Tk module from CPAN
- decompress the downloaded archive
- important: open X11 (Applications » Utilities), and use its terminal for the next steps
cd
to the Tk folderperl Makefile.PL
make
make test
sudo make install
- and you should be done
The make test
step will procedurally try the miscellaneous X interface components that Perl/Tk provides, hence the need to run it in X11. All went fine in my context, but you can find more information on Steve Lidie‘s site at Lehigh University if needed: Perl/Tk and Mac OS X.
On to compiling ClusterSSH
Now that we have met ClusterSSH prerequisites (X11::Protocol is bundled with OS X), we can move on and compile the software for OSX.
- get the latest version of the source from the official site.
- decompress the downloaded archive
- in a terminal window,
cd
to the clusterssh-* folder ./configure
make
sudo make install
On many UNIX systems, you might now be able use the cssh
command, but in OS X, you will probably need to make sure that your environment knows to look for software in /usr/local/bin
by default, particularly in the terminal. To do so:
- go back to the terminal
- type
env
- see if
/usr/local/bin
is part of the list making up thePATH
variable - if not type
export PATH=$PATH:/usr/local/bin
thenexit
.
And that is essentially it…
Using ClusterSSH
Now that everything is installed, keep in mind that the purpose of this software is to run the same actions on a number of connected computers, which obviously has tremendous advantages, but also countless dangers.
Read every command before running them, and make sure you did not accidentally or temporarily shifted the window focus to one of the nodes, therefore processing your request one one of the hosts only.
Before you start using cssh, make sure to have a user with the same username and password combination on all of the targeted hosts, unless you opted to pass some of these parameters in the individual connection strings.
ClusterSSH is an X11-based application, which Apple has been providing a port for OS X for years. But if you are on an Intel-based Mac, you might have been wondering where to find the said port for your architecture, since it is not an install option on the DVD provided with your new machine. Well, it is there, but the installer package is in fact in a directory hidden from the Finder.
To install Apple's X11 built for your MacIntel, simply do the following:
- mount the DVD that came with your Mac
- open a terminal window
- type
open /Volumes/[OSX_DVD]/System/Installation/Packages/
X11User.pkg
where[OSX_DVD]
is the volume name of the install DVD - go through the newly launched installer
- tada!
Maybe Apple thought their Universal Binary version was only half-baked (…), at least until the latest update they released on November 13, which was itself Intel-ready. Should you choose not to install the latter, you will be prompted to update X11 the next time you run Software Update.
The Perl install that comes bundled with OS X lacks one of the modules that ClusterSSH relies on to provide a small GUI window for you to type your distributed commands in: Tk. Depending on when you read this (2006-11-21), you might want to run a CPAN search for a newer version than the one I link to.
Installing Tk is quite easy if you are familiar with the terminal, and requires for you to have installed the Developer Tools that came bundled with OS X.
Dx Clusters For Mac
- get the latest Perl/Tk module from CPAN
- decompress the downloaded archive
- important: open X11 (Applications » Utilities), and use its terminal for the next steps
cd
to the Tk folderperl Makefile.PL
make
make test
sudo make install
- and you should be done
The make test
step will procedurally try the miscellaneous X interface components that Perl/Tk provides, hence the need to run it in X11. All went fine in my context, but you can find more information on Steve Lidie‘s site at Lehigh University if needed: Perl/Tk and Mac OS X.
On to compiling ClusterSSH
Now that we have met ClusterSSH prerequisites (X11::Protocol is bundled with OS X), we can move on and compile the software for OSX.
- get the latest version of the source from the official site.
- decompress the downloaded archive
- in a terminal window,
cd
to the clusterssh-* folder ./configure
make
sudo make install
On many UNIX systems, you might now be able use the cssh
command, but in OS X, you will probably need to make sure that your environment knows to look for software in /usr/local/bin
by default, particularly in the terminal. To do so:
- go back to the terminal
- type
env
- see if
/usr/local/bin
is part of the list making up thePATH
variable - if not type
export PATH=$PATH:/usr/local/bin
thenexit
.
And that is essentially it…
Using ClusterSSH
Now that everything is installed, keep in mind that the purpose of this software is to run the same actions on a number of connected computers, which obviously has tremendous advantages, but also countless dangers.
Read every command before running them, and make sure you did not accidentally or temporarily shifted the window focus to one of the nodes, therefore processing your request one one of the hosts only.
Before you start using cssh, make sure to have a user with the same username and password combination on all of the targeted hosts, unless you opted to pass some of these parameters in the individual connection strings.
Then, in an X11 terminal window, use the cssh
command as illustrated below:
Clusters For Mac
cssh user@your.host.1 user@your.host.2 user@your.host.3 [..]
When all of the windows are launched, be sure to put t
he focus on the small window (see right) and type your commands. In most cases, this will mean starting by typing your password to the computers your are connecting to. And then, you're off to the races.
You can take some steps to make your time with ClusterSSH easier, such as using ssh keys to forgo having to type a password altogether (think about security though). You can also write a small shell script already containing the full list of nodes you are most often connecting to.
I have successfully tested ClusterSSH on Mac OS X 10.4.x (Tiger) on:
- a 2006 MacBook (Core Duo)
- a 2005 Mac Mini (G4)
- and a 2003 PowerBook (G4)
Clusters Mac
For more information you can now use man /usr/local/man/man1/cssh.1
in the terminal to see the full cssh documentation, or see the online FAQ.
But please, do keep reminding yourself that the old 'rm -rf ~/* Game sniper ghost warrior 2. ' cliché is multiplied by the number of hosts you are connected to. ;)
Enjoy.
Update 1: a comment attached to this post led me to a similar tool that has its own advantages, and is well worth mentioning here: dsh.
Update 2: for those of us also running GNU/Linux, ClusterSSH is also available as a pre-compiled Debian package and Fedora RPM.