Software Performance Engineering is increasing the throughput and speed of software by making better use of the hardware possibilities. It uses faster algorithms and apply less data-intensive programming-concepts.
With new software, performance-requirements can be specified beforehand. This can be supported by specifying benchmarks in the test-cases.
Post-production happens more often, as requirements outgrow the defined ones. and it contains the following phases:[list2]
- Reverse engineering the code and compare with the original requirement-documents
- Measuring the code performance to find bottle-necks.
- Redesigning the code such that it supports current requirements.
- Implementing optimizations.
Most times if performance engineering is needed for a software less than 3 years old, or when the code was not designed or managed well. Reverse-engineering the code could reduce time when rebuilding the software.
StreamHPC is famous for porting software to accelerators like the GPUs. But performance engineering is much more than that, as accelerators can only be used when the original code meets minimum quality standards to be able to increase performance.
Want to know more? Get in contact!
We are the acknowledged experts in OpenCL, CUDA and performance optimization for CPUs and GPUs. We proudly boast a portfolio of satisfied customers worldwide, and can also help you build high performance software. E-mail us today