It seems this message passed unnoticed. Is it intended design decision to leave GPU tasks running indefinitely (up to finish or hang) in case of BOINC client crash ?
Sun, 26 Oct 2014 21:48:54 +0300 от Raistmer the Sorcerer <[email protected]>: >On my host test case resulted in error: > ><core_client_version>7.0.64</core_client_version> ><![CDATA[ ><message> >(unknown error) - exit code 194 (0xc2) ></message> ><stderr_txt> > >Both OpenCL results were marked as computation error on next BOINC client >start. > > > > >Sun, 26 Oct 2014 21:30:24 +0300 от Raistmer the Sorcerer < [email protected] >: >> >>If BOINC client stopped unexpectedly (crashed or killed via task manager for >>example) CPU apps exit after some time. But SETI OpenCL apps continue to run >>to completion. >>Such behavior can and (was demonstrated) will result in subsequent result >>computation error with some BOINC message like "result file too long" or smth >>alike. >> >>OpenCL apps working in BOINC's "critical section" and poll flags periodically >>to see if exit required. >> >>Currently I use next poll function to check exit condition: >> >>inline void ExitCheck(){ >>check_repeat: >>if (boinc_status.quit_request || boinc_status.abort_request || !canRun) { >>/* fprintf(stderr,"DEBUG: polled for exit/suspend request: exit needed. Flags >>are: boinc_status.quit_request=%d, \ >>boinc_status.abort_request=%d, canRun=%d\n", >>boinc_status.quit_request,boinc_status.abort_request,canRun);*/ >>DoSyncExit(); >>}else if(boinc_status.suspended){ >>Sleep(100); //R:await in sleep 100ms >>/* fprintf(stderr,"DEBUG: polled for exit/suspend request: sleep needed. >>Flags are: boinc_status.quit_request=%d, \ >>boinc_status.abort_request=%d, canRun=%d\n", >>boinc_status.quit_request,boinc_status.abort_request,canRun);*/ >>goto check_repeat;//R: check again if exit required or sleep continues >>}else{ >>/* fprintf(stderr,"DEBUG: polled for exit/suspend request: exit NOT needed. >>Flags are: boinc_status.quit_request=%d, \ >>boinc_status.abort_request=%d, canRun=%d\n", >>boinc_status.quit_request,boinc_status.abort_request,canRun);*/ >>} >>} What another flags should be checked if any to prevent orphaned state for >>GPU apps? Does BOINC API have measures to properly end task running in >>"critical section" in case of BOINC client crash? >> >>wbr >>-- >>Raistmer the Sorcerer >>_______________________________________________ >>boinc_dev mailing list >> [email protected] >> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev >>To unsubscribe, visit the above URL and >>(near bottom of page) enter your email address. > >_______________________________________________ >boinc_dev mailing list >[email protected] >http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev >To unsubscribe, visit the above URL and >(near bottom of page) enter your email address. _______________________________________________ boinc_dev mailing list [email protected] http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
