English 中文(简体)
Analogs of Intel s Cluster OpenMP
原标题:

Are there analogs of Intel Cluster OpenMP? This library simulates shared-memory machine (like SMP or NUMA) while running on distributed memory machine (like Ethernet-connected cluster of PC s).

This library allows to start openmp programs directly on cluster.

I search for

  • libraries, which allow multithreaded programms run on distributed cluster
  • or libraries (replacement of e.g. libgomp), which allow OpenMP programms run on distributed cluster
  • or compilers, capable of generating cluster code from openmp programms, besides Intel C++
问题回答

The keyword you want to be searching for is "distributed shared memory"; there s a Wikipedia page on the subject. MOSIX, which became openMOSIX, which is now being developed as part of LinuxPMI, is the closest thing I m aware of; but I don t have much experience with the current LinuxPMI project.

One thing you need to be aware of is that none of these systems work especially well, performance-wise. (Maybe a more optimistic way of saying it is that it s a tribute to the developers that these things work at all). You can t just abstract away the fact that accessing on-node memory is very very different from memory on some other node over a network. Even making local memory systems fast is difficult and requires a lot of hardware; you can t just hope that a little bit of software will hide the fact that you re now doing things over a network.

The performance ramifications are especially important when you consider that OpenMP programs you might want to run are almost always going to be written assuming that memory accesses are local and thus cheap, because, well, that s what OpenMP is for. False sharing is bad enough when you re talking about different sockets accessing a common cache line - page-based false sharing across a network is just disasterous.

Now, it could well be that you have a very simple program with very little actual shared state, and a distributed shared memory system wouldn t be so bad -- but in that case I ve got to think you d be better off in the long run just migrating the problem away from a shared-memory-based model like OpenMP towards something that ll work better in a cluster environment anyway.





相关问题
Assets Management in a clustered environment

I have a content management system running on a web server, that among others allows the user to upload assets like images, files, etc to the server. The problem i have is that there will be 2 ...

Condor, Sun Grid Engine, or something else?

I m trying to work out whether we should try out Condor or Sun Grid Engine at work (or possibly something else). We often have lots of unused WinXp workstations. The hope is that we could use wake-...

Caching in a clustered environment

Caching your data in your application code is generally a good idea for many reasons. We have being doing this for quiet some time in our shared environment which includes ColdFusion, .NET, and PHP. ...

Programmatically detect Windows cluster configuration?

Does anyone know how to programatically detect that a Windows server is part of a cluster? Further, is it possible to detect that the server is the active or passive node? [Edit] And detect it from ...

热门标签