Difference between “SOCK”, “PVM”, “MPI”, and “NWS”

2020-07-06 05:14发布

问题:

The makeCluster function for the SNOW package has the different cluster types of "SOCK", "PVM", "MPI", and "NWS" but I'm not very clear on the differences among them, and more specifically which would be best for my program.

Currently I have a queue of tasks of different length going into a load balancing cluster with clusterApplyLB and am using a 64bit 32-core Windows machine.

I am looking for a brief description of the differences among the four cluster types, which would be best for my use and why.

回答1:

Welcome to parallel programming. You may want to peruse the vignette of the excellent parallel package that comes with R as it gives a general introduction. It also gives you an idea of what you can or cannot do on Windows -- in short, PVM and MPI are standard parallel programming approaches supported by namesake libraries. These exists on Windows, but are less frequently used and often not as mature as their Unix counterparts.

If you want to stick with snow, your options are essentially limited to SOCK types clusters. Again, the package documentation will have pointers.