Message boards : Multicore CPUs : Multithreaded BOINC application questions
Author | Message |
---|---|
I'm curious to know which Boinc projects have multithreaded (CPU) applications. Do you like that type of app? Would you be happy to give over all your cores to a single task? (And what control does the Boinc client give you of core allocation)? | |
ID: 32874 | Rating: 0 | rate: / Reply Quote | |
I remember a few years back AQUA@Home got a multi-threaded CPU app and MilkyWay@Home N-Body Simulation is multi-threaded. | |
ID: 32876 | Rating: 0 | rate: / Reply Quote | |
Richard posted this over @Milkyway. | |
ID: 32877 | Rating: 0 | rate: / Reply Quote | |
Edges@home also has a multi-threaded vina app http://home.edges-grid.eu/home/ | |
ID: 32911 | Rating: 0 | rate: / Reply Quote | |
Thanks for the replies. The situation does look too encouraging. | |
ID: 32912 | Rating: 0 | rate: / Reply Quote | |
Thanks for the replies. The situation does look too encouraging. Yep, with an app_config. In fact it limits instances of a specific app. Here's an example: <app_config> <app> <name>ecm</name> <max_concurrent>2</max_concurrent> </app> </app_config> | |
ID: 32913 | Rating: 0 | rate: / Reply Quote | |
Thanks Beyond. It's a shame that's not exposed in the UI. | |
ID: 32914 | Rating: 0 | rate: / Reply Quote | |
Just curious, what are you thinking about using it for? | |
ID: 32965 | Rating: 0 | rate: / Reply Quote | |
Oh, no reason. But do stay tuned... | |
ID: 32967 | Rating: 0 | rate: / Reply Quote | |
Richard posted this over @Milkyway. Sorry, didn't notice this thread before. Yes, I'm test-running the Milkyway N-Body application at the moment. We had a bit of a struggle getting the server configured right to send the multi-threaded tasks out with the correct "command and control" structure (plan_class), but it's working now. Thread control is currently rudimentary, and the tendency is for a MT task to grab all cores, or none. Personally, I don't much like that - it wouldn't play well with CPU tasks from other projects if those tasks don't checkpoint frequently enough. But there's hope on the horizon. Jacob Klein and I ganged up on David A to get him to add [<app_version> to the app_config.xml specification - see Application configuration. Note that no BOINC v7.3 client exists yet, even for testing - we expect that to happen when a current rush of work on the Android platform abates a little. I'll be keeping an eye on it, and testing when available. | |
ID: 32968 | Rating: 0 | rate: / Reply Quote | |
Good to here of some movement on the MT front. I can think of a few projects that might benefit. | |
ID: 32981 | Rating: 0 | rate: / Reply Quote | |
Actually I wouldn't mind if an app was MT or not, as long as BOINC still works as it should from my point of view. And that would be: | |
ID: 33016 | Rating: 0 | rate: / Reply Quote | |
BTW: whatever you want to do on multi-core CPUs can't involve large systems (since the big GPUs are best for these). But smaller tasks are inefficient on GPUs, I guess because not all shaders can be used often enough. | |
ID: 33018 | Rating: 0 | rate: / Reply Quote | |
The don't doesn't really work in that way. However, you can simply over-subscribe the GPU with tasks; that'll give you the same result. There's a bit of overhead in GPU memory, but not much performance loss if the GPU's a Kepler.
The GK208 has the GK110's SMX, and very nice it is too. "HyperQ" and "dynamic Parallelism" aren't features that are useful for our application. Remember, we designed the application in G80 days, so most of the features of modern cards that make them easier to use are irrelevant for us. Matt | |
ID: 33023 | Rating: 0 | rate: / Reply Quote | |
If we were to have a CPU app, it's likely that it would have to be multithreaded to be fast enough to be useful. Choosing the # of cores to use would certainly have to be a one-time descision made when the application starts. | |
ID: 33025 | Rating: 0 | rate: / Reply Quote | |
I believe MilkyWay uses all logical CPUs, by default. | |
ID: 33029 | Rating: 0 | rate: / Reply Quote | |
I did this with Milyway n-body simulation on my quad core. When setting CPU use to 100% all four where used and the finished in minutes. When setting CPU use to 75%, only 3 where used. I noticed though it messed up with anoterh project running on CPU as well. | |
ID: 33031 | Rating: 0 | rate: / Reply Quote | |
I was thinking of putting the data/threads into the GPU like with vectors in Matlab. As long as only scalar operations are performed on each thread it wouldn't matter to which WU it belonged (as long as you can still sort them at the end). That obviously won't work with matrix multiplications, inversions etc. and probably not with your algorithm.. you know it pretty much infinitely better than I do ;) "HyperQ" and "dynamic Parallelism" aren't features that are useful for our application. Remember, we designed the application in G80 days, so most of the features of modern cards that make them easier to use are irrelevant for us. Well, if it was widely available you could use it to dispatch several small molecules at once in order to keep big GPU utilization high. But that's still very far in the future. Sure, running 2 WUs concurrently is nice to increase GPU utilization for short queue tasks. But as far as I understand these WUs have to interleave time slices, at any one point in time only one of them can have all shaders or none. So if you want to simulate smaller systems (otherwise there'd be no need to even consider using CPUs) a big GPU might have too many shaders to use at once. That's the problem I'm trying to think around.. but if even your small systems can easily use 10k+ shaders then I could stop right here. And might I suggest looking into Intel OpenCL first? The reason is simple: crunching on it is still hot & new, as far as I know there are only Collatz (which is pretty much useless) and Einstein to choose from. Adding a 3rd option, and a rather attractive one at that, would certainly be welcome. The CPU, on the other hand, is a ressource many projects fight for. I'm not sure you'd gain much by joining them. People might also think "hey, they could do this on smaller GPUs.. why should I sacrifice my CPU for it?". I don't know if the OpenCL libraries are already up to the task, but if not then I could imagine you might find some open ears at Intel. And then there's the long standing issue of using AMD GPUs. the current GCN architecture is surely much more flexible than the previous VLIWs and their OpenCL support has improved over time as well. Might as well do a re-evaluation here before starting something completely new (CPU-MT). MrS ____________ Scanning for our furry friends since Jan 2002 | |
ID: 33101 | Rating: 0 | rate: / Reply Quote | |
Fortunately even the smallest systems that we'd want to run comfortably fill the GPU. The GPU load that your monitoring tools report is a time average - any low load that indicates that the GPU is spending some time completely idle between operations, not that individual operations aren't filling it up.
The motivation for any CPU application would be to introduce new science capabilities, not extend the deployment of the current application. MJH | |
ID: 33110 | Rating: 0 | rate: / Reply Quote | |
Thanks, I think I understand now. There are still a lot of operations, special functions etc. which can't be parallelized well on GPUs, so are still GPU territory. Comparable to POEM, where their GPU app can only be used for the most simple force field, but all other algorithms still require the CPU. | |
ID: 33118 | Rating: 0 | rate: / Reply Quote | |
Has there been any updates in this area? I ask because some of my team have switched from FAH and have came here and to a few other projects. A lot of them had server grade equipment with multiple processors that they were used to running MT apps on. Switching to running several single apps is a big change for them. I just wanted to know if this is possibly the next phase to the recent CPU release. | |
ID: 37137 | Rating: 0 | rate: / Reply Quote | |
Hello I got a multi-threaded CPU test app yesterday and each time I restart BOINC I seem to lose all the progress, is that normal? BOINC estimates 84 hours to complete, so if this is the case I will have to abort as I dont run 24/7. | |
ID: 37438 | Rating: 0 | rate: / Reply Quote | |
The app is checkpointng correctly but the progress reporting is broken, so the end estimates are incorrect. WUs should complete in between 1 and 8hr depending on your CPU. Matt | |
ID: 37439 | Rating: 0 | rate: / Reply Quote | |
Yes you are correct, it completed, thanks. | |
ID: 37441 | Rating: 0 | rate: / Reply Quote | |
MJH, | |
ID: 37470 | Rating: 0 | rate: / Reply Quote | |
Jacob, | |
ID: 37477 | Rating: 0 | rate: / Reply Quote | |
Yes, it is. 845 and earlier don't report that they've checkpointed to BOINC. 846 will fix that. | |
ID: 37478 | Rating: 0 | rate: / Reply Quote | |
Ah, so, it is checkpointing, but it's just not reporting it correctly to BOINC. I'd consider that "not working", but either way, it sounds like you guys are working to fix it. Thanks! | |
ID: 37481 | Rating: 0 | rate: / Reply Quote | |
Please post further replies to the news thread about the new application. | |
ID: 37486 | Rating: 0 | rate: / Reply Quote | |
Message boards : Multicore CPUs : Multithreaded BOINC application questions