From: Nicholas H. <he...@se...> - 2003-07-01 20:44:05
|
On Tue, 2003-07-01 at 11:05, er...@he... wrote: > > I believe clone works. Most of the interesting stuff with clone is > local to the node and BProc doesn't get involved at all. So, in > theory, it should be possible to make Java work. Ok > > I think there are two things which you are likely to have trouble with: > > 1 - Some of the thread group stuff (CLONE_THREAD) may not work. This > stuff has been kind of fluid in the 2.4.x kernels so it seems > unlikely that many things use it. Why does it seem likely that Java uses it then --- friggin' Java! > > 2 - You cannot migrate a multi-threaded task. Some of the guys at LBL > are working on some extensions to VMADump to do handle > multi-threaded tasks for some checkpointing work they're doing but > none of this has been combined with BProc at this point. BProc > would also have to become aware of these situations. That would be very cool. > > Migration will end up creating copies of the program. Also, on > x86, vmadump isn't aware of funky LDT stuff which will also hamper > migration. Note that this doesn't mean you can't bpsh a > multi-threaded program. > > The other possible funny bit that you're likely to run into is that > fork/clone is much slower than normal because it involves the front > end. This could lead to new/interesting races or just poor > performance in apps that create/clean-up threads a lot. > > In terms of what needs to be done, that depends entirely on what > you're trying to run. I've done some simple pthreads things on nodes > w/o problems. The first place to look is probably strace output of a > program that fails. Then try and figure out how what the app is > seeing differs from what it's expecting. We have several programs that use pthreads here as well -- and they seem to run fine ( apart from the sigsuspend issue in 2.4.19 ), it is just that java seems a bit confused -- I will put together a complete bug report, and I guess we can go from there. Nic -- Nicholas Henke Penguin Herder & Linux Cluster System Programmer Liniac Project - Univ. of Pennsylvania |