SpeedGo Computing Services

Consultation services on parallel programming for multi-core CPU and GPU

Performance slow down with parallel program is not uncommon. It requires experience to overcome issues specific to parallel programming. It's most beneficial to keep these issues in the plan at an early stage. Leverage on our experience to avoid hassles with parallel programming now.


Software performance profiling and assessement

Large percentage of a program execution, may be executing only small portion of the code base. It is usually beneficial to perform software performance profiling to identify any performance bottleneck or hotspots. Concentrating only these hotspots help to reduce time and effort to optimize the software.

Assessing the execution of a software in details help to identify the potential gains in applying different optimization and parallelization techniques.
Premature optimization is the root of all evil in programming.
http://en.wikiquote.org/wiki/Donald_Knuth

Software performance optimization and parallelization

An algorithm may be implemented in many different ways. We used to optimize an implementation by minimizing the expensive instructions incurred. However, counting of instructions alone no longer reflects the performance accurately. There are deeper multi-level of caches, larger pool of registers, vector or streaming instructions, multiple computing cores, etc. that must be optimized to achieve good performance.

We are here to help optimizing and parallelizing software for multi-core CPU and GPU ranges from algorithm level to hardware level. The potential of the overall performance gain must not be underestimated.


Parallel programming workshop

Attending workshop is the fastest way to get into a new area. Our workshops, a hands-on approach, walkthrough the issues typically encountered by software developers exploring parallel programming. You may be surprised that many high performance computing practitioners had gone through the hurdles of parallel programming in a similary way. Understanding the issues early help to minimize the amount of time wasted in unproductive work, which may end up redoing the entire project.

Parallel programming is still largely new to many software developers. Get early access to parallel programming now to extend your competitive advantage. Software managers who understand the inherent issues in parallel programming would manage software projects much more carefully, dodging non-trivial pitfalls in developing parallel software.