What module in the client limits the maximum number of characters that can be passed in the command line element for the task entry in client_state.xml?

Message boards : BOINC client : What module in the client limits the maximum number of characters that can be passed in the command line element for the task entry in client_state.xml?
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Keith Myers
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 17 Nov 16
Posts: 863
United States
Message 89332 - Posted: 26 Dec 2018, 3:26:26 UTC
Last modified: 26 Dec 2018, 3:31:26 UTC

What the post title asks? Have found that the six task bundle with 14 parameters works in my client but the 4 task bundle with 26 parameters fail instantly on the MilkyWay project gpu tasks.

Would like to know which module handles that limit in the client.
ID: 89332 · Report as offensive
robsmith
Volunteer tester
Help desk expert

Send message
Joined: 25 May 09
Posts: 1283
United Kingdom
Message 89334 - Posted: 26 Dec 2018, 9:45:29 UTC

The limit is going to be determined by the data-type model employed by each project. Traditionally the limit would be (2^n)-1 so 31, 63, 127 255 would be used as they were 'easier' to store and parse, buut theese days with the much extended data-types one could have an unlimited size.
Reading your question it woulld appear to be a number of pass-parameters limit rather than the total character count, my guess is they chunk the list into a 16x2 array then parse that as this can be more effective than chunking and parsing in one pass. Obviouly if you overflow this array error handling should step in and politly tell you not to use such a long list of pass-paramters...
And don't forget that each task is its own data-entity and has its own set of parameters so one list of 26 is bigger than ten llists of 14....
ID: 89334 · Report as offensive
Profile Keith Myers
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 17 Nov 16
Posts: 863
United States
Message 89358 - Posted: 26 Dec 2018, 23:03:43 UTC - in response to Message 89334.  

Thanks Rob. Alan over in the MW forums gave some clues as to why I formatted the question the way I did.

The major difference between the two job types is that one does 6 tasks with 14 parameters and the other does 4 tasks with 26 parameters.

I'm guessing here, but I suspect the reason you're having problems with the older BOINC client might be because of the extra parameters! The command line it has to construct contains the path to the executable (a 96-character relative path on my system) and the parameters as given by the <command_line> element of the <workunit> section in client_state.xml (which is 861 characters for one of the 26-parameter tasks I've just looked at!) The total command line length for that job would be nearly 960 characters, and that may not be the longest it could be...

The parameters seem to be free-format (in that they don't have a fixed number of decimal places) but typically have 6 or 7 digits and a decimal point. Some also have a minus-sign. There are a few with less than 6 digits, but not many in the examples I looked at.

So I'm wondering if there's an issue with the maximum command line length that the older client can handle, and perhaps these jobs trigger that problem?
ID: 89358 · Report as offensive

Message boards : BOINC client : What module in the client limits the maximum number of characters that can be passed in the command line element for the task entry in client_state.xml?

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.