Read/write SQL operations were performed on local storage, PowerFlex and PowerFlex with clustered file system (OCFS2). All analytical operations were done on both GPU and CPU servers.
The following table outlines several factors that should be considered before choosing appropriate scenarios.
Table 3. Solution Scenarios
Typical Operations and use-cases |
GPU Disposition |
CPU Disposition |
Vectorizable operations: Same operation on lots of individual data at the same time |
Extremely suitable for a GPU based system |
CPU can handle this operation but usually with limited concurrency GPU will outperform |
Every operation on data that is contiguous in memory |
GPU operation will be very efficient due to very efficient memory access patterns |
CPU will benefit from read hits at various layers but due to the high number of GPU cores, GPU will outperform |
Data is not in contiguous memory (such as hash join) |
Operation is not very suitable for GPU |
CPU will be adequate for this |
Operations that must scale as distributed operations across multiple processors or multiple servers |
GPUs are unable to help in these kinds of operations. But if the problem can be subdivided, subproblems can be solved on different nodes and then results aggregated on a Kinetica head node |
In general, these operations will perform adequately on CPU based machines |
High volume, high velocity ingests with background calculation aggregating data which is then served down to 10s of thousands of users |
GPU is a perfect fit for this sort of a use-case. In general, a small concurrency operation with a very high compute ratio is the best case scenario for a GPU. There are numerous use cases, like inventory management, where GPU processing can really benefit |
CPU based systems will work adequately, unless the compute is too heavy. Then it requires a small amount of calculation on varying segments of data, CPU will generally be a better and cheaper choice compared to a GPU based system |