Hardware Reference Configuration Guide¶
The amount of data you can process with the MapD database depends primarily on the amount of GPU RAM and CPU RAM available across MapD cluster servers. For zero-latency queries, the system caches compressed versions of the row- and column-queried fields into GPU RAM. This is called hot data (see Hot Records and Columns). Semi-hot data utilizes CPU RAM for certain parts of the data.
System Examples shows example configurations to help you configure your system.
NVIDIA Pascal GPUs¶
Currently, the optimal GPUs on which to run the MapD Analytics Platform are:
- NVIDIA Tesla P40
- NVIDIA Tesla P100
The configurations that follow assume either of these GPUs as your system building block. Other GPUs, such as the NVIDIA Tesla K80 or Titan X, will still work. However, for production systems, Tesla-designated enterprise-grade cards with the latest Pascal architecture, denoted by the “P” prefix, are recommended.
The Tesla P40 and Tesla P100 have advantages in different use cases. For scaling to bigger datasets in a smaller server footprint, the P40 is preferred because of its larger memory size. However, the P100 has significantly higher memory bandwidth and much higher double-precision compute performance, which is ideal for workloads such as geospatial analytics. Also, the Tesla P100 supports the NVLink interconnect, which can provide a significant speed increase for some query workloads.
For advice on the optimal GPU hardware for your particular use case, ask your MapD sales representative.
MapD Core Database Architecture¶
Before considering hardware details, let’s look at the MapD Core database architecture.
The MapD Core database is a hybrid compute architecture that utilizes GPU, CPU, and storage. GPU and CPU are the Compute Layer, and SSD storage is the Storage Layer.
When determining the optimal hardware, make sure to consider the storage and compute layers separately.
Loading raw data into the MapD Core database ingests data onto disk, so you can load as much data as you have disk space available, allowing some overhead.
When queries are executed, the MapD Core database optimizer utilizes GPU RAM first if it is available. You can view GPU RAM as an L1 cache conceptually similar to modern CPU architectures. The MapD Core database attempts to cache the hot data. If GPU RAM is unavailable or filled, the MapD Core database optimizer utilizes CPU RAM (L2). If both L1 and L2 are filled, query records overflow to disk (L3). To minimize latency, use SSDs for the Storage Layer.
You can run a query on a record set that spans both GPU RAM and CPU RAM as shown in the diagram above, which also shows the relative performance improvement you can expect based on whether the records all fit into L1, a mix of L1 and L2, only L2, or some combination of L1, L2, and L3.
Hot Records and Columns¶
The Hardware Sizing Schedule table refers to hot records, which are the number of “average-sized” records that you want to put into GPU RAM to get zero-lag performance when querying and interacting with the data. These numbers assume a maximum of 16 hot columns, which is the number of columns involved in the predicate or computed projections (such as, column1 / column2) of any one of your queries. A 15 percent GPU RAM overhead is reserved for rendering buffering and intermediate results. If your queries involve more columns, the number of records you can put in GPU RAM decreases, accordingly.
The server is not limited to any number of hot records. You can store as much data on disk as you want. The system can also store and query records in CPU RAM, but with higher latency. The hot records represent the number of records on which you can perform
The MapD Core database does not require all queried columns to be processed on the GPU. Non-aggregate projection columns, such as
SELECT x, y FROM table, do not need to be processed on the GPU, so can be stored in CPU RAM. The Hardware Sizing Schedule CPU RAM
sizing assumes that up to 24 columns are used in only non-computed projections, in addition to the Hot Records and Columns.
The amount of CPU RAM should equal four to eight times the amount of total available GPU memory. Each NVIDIA Tesla P40 has
24 GB of onboard RAM available, so if you determine that your application requires four NVIDIA P40 cards, you need between
4 x 24 GB x 4 (384 GB) and
4 x 24 GB x 8 (768 GB) of CPU RAM. This correlation between GPU RAM and CPU RAM exists because the
MapD database uses CPU RAM in certain operations for columns that are not filtered or aggregated.
A MapD Core database deployment should be provisioned with enough SSD storage to reliably store the required data on disk in compressed format. MapD recommends drives like the Intel® SSD DC S3610 Series, mat2.5in SATA 6Gb/s, or similar in any size that meets your requirements. The disk should have at least 30 percent overhead because the MapD database uses temporary disk space for various database operations. If you plan to first copy the raw source files to the MapD database server, ensure that space is available for both source files and MapD database files.
Hardware Sizing Schedule¶
This schedule estimates the number of records you can process based on GPU RAM and CPU RAM sizes. This applies to the compute layer. For the storage layer, provision your application according to SSD Storage guidelines.
|GPU Count||GPU RAM (GB)||CPU RAM (GB)||“Hot” Records|
|(NVIDIA P40)||8x GPU RAM||L1|
If you already have your data in a database, you can look at the largest fact table, get a count of those records, and compare that with this schedule.
If you have a .csv file, you need to get a count of the number of lines and compare it with this schedule.
MapD uses the CPU in addition to the GPU for some database operations. GPUs are the primary performance driver; CPUs are utilized secondarily. More cores provide better performance but increase the cost. Intel CPUs with 10 cores offer good performance for the price. For example, so you could configure your system with a single NVIDIA P40 GPU and two 10-core CPUs. Similarly, you can configure a server with eight P40s and two 10-core CPUs.
- Intel® Xeon® E5-2650 v3 2.3GHz, 10 cores
- Intel® Xeon® E5-2660 v3 2.6GHz, 10 cores
- Intel® Xeon® E5-2687 v3 3.1GHz, 10 cores
- Intel® Xeon® E5-2667 v3 3.2GHz, 8 cores
PCI Express (PCIe)¶
GPUs are typically connected to the motherboard using PCIe slots. The PCIe connection is based on the concept of a lane, which is a single-bit, full-duplex, high-speed serial communication channel. The most common numbers of lanes are x4, x8, and x16. The current PCIe 3.0 version with a x16 connection has a bandwidth of 16 GB/s. PCIe 2.0 bandwidth is half the PCIe 3.0 bandwidth, and PCIe 1.0 is half the PCIe 2.0 bandwidth. Use a motherboard that supports the highest bandwidth, preferably, PCIe 3.0. To achieve maximum performance, the GPU and the PCIe controller should have the same version number.
The PCIe specification permits slots with different physical sizes, depending on the number of lanes connected to the slot. For example, a slot with an x1 connection uses a smaller slot, saving space on the motherboard. However, bigger slots can actually have fewer lanes than their physical designation. For example, motherboards can have x16 slots connected to x8, x4, or even x1 lanes. With bigger slots, check to see if their physical sizes correspond to the number of lanes. Additionally, some slots downgrade speeds when lanes are shared. This occurs most commonly on motherboards with two or more x16 slots. Some motherboards have only 16 lanes connecting the first two x16 slots to the PCIe controller. This means that when you install a single GPU, it has the full x16 bandwidth available, but two installed GPUs each have x8 bandwidth.
MapD recommends installing GPUs in motherboards with support for as much PCIe bandwidth as possible. On modern Intel chip sets, each socket (CPU) offers 40 lanes, so with the correct motherboards, each GPU can receive x8 of bandwidth. All recommended System Examples have motherboards designed for maximizing PCIe bandwidth to the GPUs.
MapD does not recommend adding GPUs to a system that is not certified to support the cards. For example, to run eight GPU cards in a machine, the BIOS register the additional address space required for the number of cards. Other considerations include power routing, power supply rating, and air movement through the chassis and cards for temperature control.
For an emerging alternative to PCIe, see NVLink.
A variety of hardware manufacturers make suitable GPU systems. These tables describe the systems and relevant configuration items.
Dell 2 GPU 2U Server¶
Description: 256GB RAM, 2-socket CPU, 3.125TB SATA SSD, 2 NVIDIA P40, 2U
|16||R73X||PowerEdge R730 Server|
|16||26404||Intel® Xeon® E5-2640 v4 2.4 GHz, 25M Cache, 8.0 GT/s QPI, Turbo, HT, 10C/20T (90W) Max Mem 2133 MHz|
|16||32GBMM||32 GB RDIMM, 2400MT/s, Dual Rank, x4 Data Width|
|16||8006GP||800GB Solid State Drive SATA Write Intensive 6 Gbps 2.5 in Hot-plug Drive, S3710|
|16||NV24GB||NVIDIA Tesla P40 24 GB GPU, Passive|
Supermicro 4 GPU 1U Server¶
Description: 768 GB RAM, 2-socket CPU, 6.4 TB SATA SSD, 4 NVIDIA P40s, 1U
|2||P4X-E52667V3-SR203||Intel Xeon Processor E52667V3 3.2 GHz (Haswell)|
|16||MEM-DR432LHL01-ER21||16 GB PC4-19200 2400 MHz DDR4 ECC Registered DIMM|
|4||SSDSC2BX016T401||Intel® SSD DC S3610 Series (1.6 TB, 2.5 in SATA 6 Gb/s, 20 nm, MLC) 7 mm|
|4||AOC-GPU-NVP40M||NVIDIA® Tesla™ P40 GPU Computing Accelerator - 24 GB GDDR5 - Passive Cooler|
Workstation NVIDIA DGX Station¶
Description: 256 GB RAM, 1 CPU, 8 TB SATA SSD, 4 NVIDIA V100s NVLINK
|1||Intel Xeon Processor E52698V4 2.2GHz (20 corel)|
|256GB LRDIMM DDR4|
Data: 3X 1.92 TB SSD RAID 0
OS: 1X 1.92 TB SSD
Supermicro 8 GPU 4U Server¶
Description: 768 GB RAM, 2-socket CPU, 6.4 TB SATA SSD, 8 NVIDIA P40s, 4U
|2||Eight-Core Intel® Xeon® Processor E5-2667 v4 3.20 GHz 25 MB Cache|
|24||32GB PC4-19200 2400 MHz DDR4 ECC Registered Load-Reduced DIMM|
|4||1.6 TB Intel® SSD DC S3520 Series 2.5” SATA 6.0 Gb/s Solid State Drive|
|8||NVIDIA® Tesla™ P40 GPU Computing Accelerator - 24 GB GDDR5 - Passive Cooler|
System 76 2 GPU Developer Workstation¶
Description: 64 GB RAM, 1-socket CPU, 1 TB SATA SSD, 2 NVIDIA 1080Ti
|4.0 GHz i7-6850K (3.6 up to 4.0 GHz – 15 MB Cache – 6 Cores – 12 threads)|
|64 GB Quad Channel DDR4 at 2400MHz (4× 16 GB)|
|1 TB 2.5” SSD|
|2||11 GB GTX 1080 Ti with 3584 CUDA Cores|
HP 9 GPU 4U Server¶
Description: 1 TB RAM, 4-socket CPU, 7.68TB SATA SSD, 9 NVIDIA P40s, 4U
|1||HPE DL580 Gen 9||HP ProLiant DL580 G9 4U Rack Server|
|4||E7-8890v3||Intel® Xeon® E7-8890 v3 (18 core, 2.5 GHz, 45 MB, 165 W)|
|16||726724-B21||HP 64 GB (1x64 GB) Quad Rank x4 DDR4-2133 CAS-15-15-15 Load Reduced Memory Kit|
|2||816929-B21||3.84 TB 6G SATA Read Intensive-3 SFF 2.5-in SC Solid State Drive|
|9||Q0V80A||NVIDIA® Tesla™ P40 GPU|
NVIDIA 8 GPU 4U Server¶
Description: 512 GB RAM, 2-socket CPU, 7.68TB SATA SSD, 8 NVIDIA V100 NVLINK, 4U
|2||20-Core Intel Xeon E5-2698 v4 2.2 GHz|
|512 GB 2,133 MHz DDR4 LRDIMM|
|4||1.92 TB SSD RAID 0|
GPU 2U IBM Power System S822LC Server¶
Description: 512 GB RAM, 2-socket CPU, 2 TB SATA SSD, 4 NVIDIA P100 NVLINK, 2U
|1||2x 8 core CPUs at 3.25 GHz (16x POWER8 cores with NVIDIA NVLink)|
|2||10 cores (2 x 10c chips) / 160 threads, POWER8 with NVLink|
|2||1.92TB 2.5” 6 GB/s SATA 512N FORMAT SSD|
|4||NVIDIA Tesla P100 SXM2 GPUs with NVIDIA NVLink|
Penguin Computing: http://www.penguincomputing.com/products/gpu-servers/