An HPC cluster is a useful tool, especially for those seeking an expansion of computing power or communal resources. But building a HPC cluster and running Abaqus on it is complex and expensive right?
Well… sort of.
Having built a cluster earlier this year with my colleague Stephanie I’ll start with some good news; once you’ve installed Abaqus you shouldn’t have any trouble getting it to run. Now in answer the rest of my vague statement I’ll describe the process of setting up our cluster. The aim was to prove you could build a HPC with a minimal budget, although the “high-performance” part does become questionable at minimal budget. Starting this project we had no experience of running clusters and I had next no experience with terminal or command prompt.
The hardware was the simple part, we went for a simple “Beowulf”* cluster, one master and four slaves. So the shopping list came down to five outdated dual core machines, an old monitor switcher and a network switch from out of the cupboard. Since the task was at minimal budget we chose Linux as the final operating system. So overall we kept well below the budget of £500.
With the easy part out of the way, the software had to be setup so that the computers communicated correctly. I’ll only be outlining the process here, for exact details I can recommend the tutorial at http://mpitutorial.com/tutorials/. So the first stage was to connect the computers to a network, easy enough in a work environment. Next the master needs to be able to access the slaves, usually a form of SSH remote login. And that’s all the prerequisite software you’ll need before installing Abaqus. You don’t need any more prerequisites because Abaqus handles the file sharing and MPI processes within it code and functions. Oh and MPI(Message Passing Interface) is a parallelisation code library which splits a task into pieces that can be run in parallel. MPI is the key library for sending parts of your task to the other machines. So in order to it you’ll need the code library that comes packaged within the Abaqus API, as Abaqus doesn’t use the open source
version. Hence the API will need to be installed on every slave, which will mean the solver too.
Once Abaqus is installed the final part of setup is editing the environment file on the master. Which tells Abaqus what computers it can use and the number of cores available on each. Everything else comes down to the right commands; even then, the minimum needed to make Abaqus send part of the load to the slaves is to submit a job with more cores than the master has locally.
And there you have it, is it complex to build a cluster? It all comes down to researching which software to use, and willingness to experiment a little. Is a cluster expensive to build? Technically no, but you’ll get what you pay for and at lower cost than single tower. Is it complex to run Abaqus on a cluster? Absolutely not, assuming your using a supported OS, Abaqus only needs some environment file additions and it’s ready to go.
*A Beowulf cluster is made from low power identical nodes networked on a small LAN.