When to use SPARC CPU?

I will try to share my summarizations from the facts Oracle told on many various events:

-       SPARC CPU is not designed to perform well with Floating-Point operations. If you are making such heavy and scientific Works with Floating Point Numbers, its performance may not suffice. SPARC is designed to perform well with integer number operations on business applications.

 

-       SPARC CPU threading model is CMT but Intel and IBM use SMT. SMT realies on memory latency. When memory was late, CPU can run another thread instead of waiting. CMT is not such software solution, it has more hardware resources for its threads. Oracle tells that they dont want latency between CPU and memory. That’s why their memory bandwith is higher then any other platform and if an application has high communication among CPU and memory, SPARC can perform better due to both its higher memory bandwith and its CMT technology ability to run many hardware threads in parallel. This criteria can include in-memory applications but it is not limited to In-Memory concept, any application working heavily between CPU and memory can fit well.

 

-       SPARC CPU can be a little ( maximum %30 ) worse than Intel CPU on single thread performance, but it is also being improved day by day. SPARC’s primary design point is scalability (SPARC means Scalable Platform Architecture) and throughput computing. You get better total performance and throughput when you run more loaded parallel applications together. (For example, they tell that max performance sample with CMT can be when many heavy-loaded RMAN backups were running in parallel.)

 

-       With M7, Oracle made special improvements special to in-memory applications like DAX engine etc. It is also another important use-case to use M7 CPU in IM analytic applications. When using In-Memory,  running OLTP and Analytics together on the same machine with good performance is advised, it is really a vital benefit for many customers.

 

How to use SPARC CPU?

Question can seem interesting but it is also important because there are always best practices and usage patterns impact performance too.

-       If you couldn’t find the package for SPARC and you will install something by compiling, dont use GCC, use Developer Studio instead. Because we observed a real-life sample issue that GCC did not recognized SPARC CPU modulo(%) command and used its __umoddi3 software solution, software solution instead of hardware solution caused really worse performance difference. So, when compiling code on SPARC, use Developer Studio.

 

-       Parallel code that will work on SPARC CMT will perform better if OpenMP parallelization standardization is used instead of PTHREADS method.

Please feel free to communicate by bulent.yucesoy@gmail.com