From: <er...@he...> - 2004-04-21 22:43:54
|
On Tue, Apr 20, 2004 at 02:41:05PM -0400, Daniel Gruner wrote: > Hi > > Is there any kind of documentation on the BProc api changes between 3.x and > 4.0? I am interested in getting lam-mpi to work, and it requires porting. > It complains that a bunch of functions are no longer there: > > bproc_getnodebyname > bproc_nodenumber > > Could someone point me to the proper replacement functions? I haven't written any docs yet. Those two are missing but could easily go back in. I think bproc_nodenumber got axed because it was really slow. It's implemented as bproc_nodelist followed by a search to find the specified IP address. This got compouned by the fact that the people using it here called it many times in rapid succession. That caused bproc_nodelist to get called a lot. Performance sucked and bpmaster got hammered by the requests in the mean time. Obviously, the reasonable way to handle this would be to get the nodelist once and then scan it multiple times. This is hard to hide in the library - you don't really want to cache since the information can change. If it just becomes an external scan function, there's hardly any reason to have it at all. That was my conclusion anyway. The bpfs file system stuff got written to fix the slowness of stuff that used to ask the master daemon for machine state. bproc_getnodebyname was a trivial little crutch. It basically amounts to strtol(). The theory here was that it was going to be replaced by the nodeset + nodefilter stuff. That stuff doesn't currently understand stuff like n10 though. I think the API could probably be hashed out a little more. I feel like there's too many variants on the move calls. I was planning to solicit input on it when I get some time to work on it again. In any case, I wouldn't count on it staying exactly the same until the "pre" disappears from the version number. - Erik |