High Performance Computing
Experts in high performance computing
When doing large scale computations you will quickly hit the boundaries of computational speed and available memory. We can help you optimize your software for the available hardware. For instance for multicore achitecture or GPU‘s. We get the maximum from the hardware using a combination of clever programming and the use of tools like OpenMP, CUDA, OpenCL and OCCA. For more demanding applications, we can adapt your code for use on the most powerful compute systems like clusters and cloud-solutions. In most cases, this is about parallellisation, for example using MPI.
Let us tell you what we have to offer on High Performance Computing. You may also want to check out our whitepaper about all the different ways to enhance computing speed.
The advantages of High Performance Computing
High Performance Computing (HPC) offers the following advantages.
Get your results faster
Systems for operational applications need to produce results in a limited time frame. But low computing times will also enhance the efficiency of your work as it reduces waiting times.
Higher accuracy
More accurate computations can be done in the same time frame. For example using a finer grid, doing more iterations or (in Monte Carlo simulations) evaluating more samples from a random distribution.
Better models
Optimization of software makes it possible to run better models in the same computing time. Models with less assumptions and simplifications will produce more reliable results.
More alternatives
More variants of a design can be simulated in the same time frame. This will lead to a better design or a better understanding of the error margins.
Three steps to High Performance Computing
1. Use more efficient algorithms
Often, much computing time can be saved by using a smarter algorithm. This requires both mathematical expertise and a thorough understanding of algorithmics.
2. Investigate optimisations
Analyse computing time and make a well-considered plan to increase the performance. Take into account both low level optimisations (better memory use, improved cache-use, vectorisation, use of optimised libraries like the MKL) but also improvements on a higher level (parallellisation or the use of GPUs).
3. Implement optimisations
Improve the code according to plan. This may vary from modifying a few performance-critical lines to an entirely new software architecture. In any case, it is important that the code remains understandable and maintainable.
Our services for High Performance Computing
We offer you a range of services, based on our extensive experience with HPC, scientific software development and mathematical modeling.
The Modelscan
Our modelscan gives you a complete analysis of your code with an advice on the best strategy for improvement, including a development plan and an estimate of costs and benefits.
Software development for High Performance Computing
We implement code improvements for the chosen HPC approachThis may include installation and tuning your software on a specific platform.
High Performance Computing Consultancy
We provide consultancy with respect to the HPC options for your application.
Training
We provide training in the field of scientific software engineering and performance-aware programming.
More information
VORtech offers a fact sheet about HPC. In addition, we regularly publish blog posts about HPC. Feel free to contact us if you have any questions or if you would like to explore whether we could help you with a HPC issue.