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