Calculation performance in PIAS
SARC is already present in the maritime software industry for more than 35 years. Our goal is to create software for naval architects which programmed from the mind and practice of a naval architect, in order to make it quick and easy to use. One of the most challenging parts of software programming is to make the software is fast enough for the most comprehensive calculations. As years got by, on one hand computers became faster, while on the other hand there is a tendence to calculate more and more. Therefore the software programmers had to make sure they would keep up with the developments of the hardware.
For a long time past a PC generally had one processor, containing only a single processing unit (core). That implies that the computer can process one task at a time. However, there is a tendency where a computer is equipped with multiple real or virtual processors. So, this technology enables a program to execute tasks parallel and in 2005 PIAS has been adapted for that facility by making the following tasks available for simultaneous processing:
- Intact and damage stability.
- Probabilistic damage stability.
- Computation of intersections between bulkheads and/or compartment boundaries in PIAS’ Layout module.
So, over more then a decade ago we already developed hyper-threading within PIAS. In later years hardware companies kept developing their processors which also led to new developments in our software. Dual threading processors have led to multithreading in PIAS. Additionally, modern CPU’s are equipped with AVX (Advanced Vector eXtensions) which facilitates eight concurrent arithmetic operations in one processor cycle. More information can be found in the white paper ‘Acceleration of PIAS by hardware support‘ from May 2017.
PIAS offers two speed enhancing packages:
- PIAS/ES 1, with original Windows threading facilities, limited to two threads (dualthreading).
- PIAS/ES 2, containing AVX and application of Windows thread pool technology. Optimized for 4 to 8 threads but limited to 8 threads (hence its name octothreading).
We have done some tests for an “average” PIAS ship, with damage cases up to 8 simultaneous damaged compartments, resulting in 525 damage cases, without so-called “external subcompartments”. (Measured timings are in seconds)