id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
925	BOINC 6.6.36 non-CUDA checkpoint interval scaled by host.ncpus	Thyme Lawn	davea	BOINC 6.6.36 has a checkpoint multiplier problem for non-CUDA tasks on multi-core systems.\r\n\r\nI have my checkpoint interval set to 10 minutes but checkpoints for malariacontrol.net and WCG are happening every 20 minutes on a dual core system and every 40 minutes on a quad core.  Applications are kept in memory and WCG usually checkpoints soon after being scheduled, meaning it can be scheduled for >80 minutes on the quad core instead of the 60 minutes set in preferences.\r\n\r\nThe problem is in ACTIVE_TASK::write_app_init_file() which contains the following pair of lines:\r\n\r\n    int nprocs = (result->avp->ncudas)?coproc_cuda->count:gstate.ncpus;\r\n    aid.checkpoint_period = nprocs*gstate.global_prefs.disk_interval;\r\n\r\nThis means the checkpoint interval for non-CUDA tasks will always be scaled up by the host's number of CPUs (gstate.ncpus) instead of the average number of CPU's requested for the task (result->avp->avg_ncpus).\r\n\r\nSure enough, app_init.xml on the dual core system has\r\n\r\n<checkpoint_period>1200.000000</checkpoint_period>\r\n\r\nand on the quad core it has\r\n\r\n<checkpoint_period>2400.000000</checkpoint_period>	Defect	closed	Minor	Undetermined	Client - Daemon	6.6.36	fixed	checkpoint	
