Message boards : Number crunching : Report Results Immediately doesn't always works
Author | Message |
---|---|
The reports results immediately doesn't always works. Here is an example, if you have multiple video cards on your computer, and you are uploading two work units simultaneously. One finishes first, and is ready to report, while the other is still uploading, it will not report automatically until the other one finishes uploading. | |
ID: 35774 | Rating: 0 | rate: / Reply Quote | |
There are deliberate provisions in recent BOINC clients to delay scheduler RPCs - whether to report completed work, or request new work - while uploads are active. | |
ID: 35783 | Rating: 0 | rate: / Reply Quote | |
I don't have any particular problems with this. It is just an oddity, and I thought I would just point it out. Is this something worth investigating or an insignificant anomaly? I can't say. | |
ID: 35793 | Rating: 0 | rate: / Reply Quote | |
Yet more settings being enforced upon all projects clandestinely! | |
ID: 35798 | Rating: 0 | rate: / Reply Quote | |
Yet more settings being enforced upon all projects clandestinely! Perhaps they could be persuaded to ONLY connect to report units every 60 sec IF there is one to report, not just hammer on the door regardless. That way the unit finishes and then no more then 60 sec later it gets reported. That way all the different projects could still use their multi length units and not be hammered by all the pointless connections. | |
ID: 35806 | Rating: 0 | rate: / Reply Quote | |
Skgiven, | |
ID: 35810 | Rating: 0 | rate: / Reply Quote | |
The root of this is that a projects credit database is separate from the WU database. So files have to first upload to the WU database and then credit is reported to a second database. For some projects this secondary reporting to a second database is an issue (it uses up connection resources and bandwidth). | |
ID: 35817 | Rating: 0 | rate: / Reply Quote | |
Skgiven, I think what you are seeing at most projects is the unit 'report' right away that it has successfully completed the unit, but not send the actual results back until the next regular communication. The results reporting can take a little bit depending on the size of the data to be reported, some projects have alot and some have just a little bit. The reporting that it was successfully crunched tells the Server there is no need to resend the unit because you did finish it. The idea behind sending back the actual results right away is the granting of credits faster, so instead of waiting for your cache to need refilling as we did in the older versions of boinc, you sent the results back right away. All this was supposed to help your rac go up faster, that is all. What it ends up doing though is tying up the Server ports for every unit you finish as opposed to doing it only when you have several units to report. The other possible reason was if your cache was so big that you were always close to having your units expire due to the time, so returning the results for them as soon as you finish them helps ensure that they get back on time. BUT I am not sure that is a valid discussion because you already reported that you did finish the unit and the Server knows that, I do not know how much leeway there is after the deadline if the Server knows the unit was crunched. MANY years ago Seti figured it was taking 30 milliseconds for their Server to get the info that you wanted to talk to their Server, open a port and the data to start flowing. In server time that is ALOT of time. There are only so many ports available and 30 milliseconds times 2.5 million people, each doing it several times or more, per day, meant that there was no way the Server could keep up. Always trying to get a connection and retrying, retrying and retrying some more is called 'hammering' and can also slow down Server communications. That is why they instituted the increased back off times when it doesn't work, to stop people from saying 'LET ME IN' constantly. It STILL takes about that same 30 milliseconds for the Server to say 'no you can't come in', so hammering is STILL tying up the Server. I too have only very rarely used the flag and do not use it currently as it isn't important to me. | |
ID: 35819 | Rating: 0 | rate: / Reply Quote | |
The root of this is that a projects credit database is separate from the WU database. So files have to first upload to the WU database and then credit is reported to a second database. For some projects this secondary reporting to a second database is an issue (it uses up connection resources and bandwidth). No, not true. When a task completes (here or at any BOINC-based project), there are indeed two separate follow-up phases to be gone through, but they are not quite as you describe. They are (and have to be, in this order): 1) a 'data' phase This is where the scientific results of the computation are returned. It's a straight file transfer, one hard disk (yours) to another (the project's). During this phase, BOINC Manager will show 'uploading' against the task name, and one or more files will be shown in the 'Transfers' tab. This phase is not visible on the 'Projects' tab. GPUGrid typically generates large upload files - 40MB-50MB for the long tasks - and they can take several minutes to upload over typical home DSL circuits (possibly less if you have a cable or fibre-optic connection). 2) a 'control' phase This is where you let the project know that you have already uploaded the result file, so the project can proceed to check it (and validate it against another user's work, if needed). This is the point at which the project database - only one database - can be updated with the new status (success or error), the time of reporting, any credit due to be awarded, and all the other little housekeeping details. No single task can be 'reported' (the control data written) until all the data due to the project for that task has been transferred - checking that the files are present and correct is a necessary part of the reporting process. As has been correctly said, this project sets a flag to say that reporting - what I've called the control phase - should take place as soon as possible after the data transfer is complete. We don't need to do anything for that to happen. The confusion has arisen because of what can happen if two different tasks happen to complete in quick succession. In that particular case (only), task1 may have completed its file transfer and become 'ready to report', but task2 may still be transferring data. In that particular case, BOINC will delay the reporting of task1 until all the transfers for task2 are complete, and then report both tasks together in a single database transaction. There are safeguards in place: if the second set of transfers fails, BOINC will go ahead and report task1 on its own anyway: and there's something like a maximum 5 minutes timeout for uploads which slow to a crawl but don't actually fail with an error message. So, a task - 'task1' - may not be reported 'immediately' in this case, but it should be reported within 5 or 10 minutes, depending on the speed of your upload link. I don't think that's the end of the world? | |
ID: 35823 | Rating: 0 | rate: / Reply Quote | |
skgiven, since I have only been at gpugrid for a year that would explain my observation on how upload tasks is working. | |
ID: 35824 | Rating: 0 | rate: / Reply Quote | |
Message boards : Number crunching : Report Results Immediately doesn't always works