|
|
SCL Cluster Cookbook Memory |
The amount of memory needed by the cluster's target application will likely determine how much RAM to purchase for the cluster. Programs that are parallelized should be divided such that the memory, as well as the processing, is divided between processors for scalability. Thus it shouldn't be necessary to buy enough RAM to hold the entire problem in memory on each system, but neither should the amount of RAM on each system be too small because swapping memory blocks to disk is a performance killer.
The RAM currently used for most commodity PCs is a small board with 72
tin or gold tabs (a.k.a. pins) called SIMMs for "Single Inline Memory
Modules". Newer systems may use 168-pin DIMMs (Dual Inline Memory
Modules). The PCGuide has an
excellent section on memory packaging.
When buying memory, you must be sure to buy the correct
package, technology (FPM, EDO, SDRAM, etc.) and type (non-parity,
parity, or ECC) to match the system's motherboard and chipset. Also
try to match the connector type, gold socket to gold tabs or tin
socket to tin tabs, to avoid corrosion and resulting memory errors.
Technology
FPM (Fast Page Mode) RAM is the old standard for memory which has been
used since the Intel 80386 became popular. FPM allows faster access
to successive columns in the same row of memory, resulting in a
fastest access of 5 CPU clock cycles for the first column and 3 CPU
clock cycles for successive columns in the row. (Inside the actual
memory chips, individual bits are arranged in rows and columns.)
EDO (Extended Data Out) RAM changes the timing for FPM slightly so that successive columns of a row may be accessed in 2 CPU clock cycles. It is claimed that EDO RAM will not work for bus speeds higher than 66MHz. As of this writing, EDO RAM is the most popular RAM technology.
BEDO (Burst Extended Out) RAM further improves on EDO RAM to reduce clock time for successive columns of a row to 1 CPU clock cycle. Like EDO RAM, though, it is claimed that BEDO RAM will not work for bus speeds higher than 66MHz.
SDRAM (Synchronous Dynamic RAM) uses signaling synchronized to the
system clock, so it is able to provide the same access timing as BEDO
RAM but it will handle bus speeds up to 100MHz. Some Intel chipsets
(430VX, 430TX, 440LX) support SDRAM, as do a few non-Intel chipsets.
Non-Parity, Parity, or ECC?
Some chipsets support only non-parity RAM. Parity-checking RAM, which
detects single bit errors, seems to be a minimal requirement since one
would not want a computation to continue if bad data is obtained from
the memory. ECC RAM, which corrects single bit errors and detects
double bit errors, seems like a good choice for larger clusters since
there are so many individual memory components that provide
opportunities for failure.
Beware "logic parity" RAM, which spoofs the parity bit and allows
cheaper parity-lacking RAM modules to be used on systems that expect
parity-checked RAM. Because the module does not keep the parity bit
but generates it based on the current data read from RAM, it does not
provide any actual parity verification capability.
Vendors
Always check the instructions for a system's motherboard to
identify exactly the type of memory module to purchase. Restocking
fees could be expensive (if the supplier will take the memory back at
all) if the wrong modules are purchased and end up not working in your
system.