Merge branch '16-unable-to-saturate-cpus-on-sufficiently-powerfulm-hartdware' into 'master'
Resolve "Unable to saturate CPUs on sufficiently powerfulm hartdware" Closes #16 See merge request atom/AtOM!21
This commit is contained in:
commit
2e3c47071f
@ -162,3 +162,5 @@ Sanity checks raised $sanitywarn warnings... Hit Control-C to abort." >&2
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# vim:set ts=8 sw=8:
|
||||||
|
|||||||
@ -17,213 +17,223 @@ master() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo '
|
until (( active == concurrency || remaining == 0 ))
|
||||||
SELECT COUNT(*)
|
do
|
||||||
FROM tasks
|
echo '
|
||||||
WHERE status = 0
|
SELECT COUNT(*)
|
||||||
AND requires IN (
|
FROM tasks
|
||||||
SELECT id
|
WHERE status = 0
|
||||||
FROM tasks
|
AND requires IN (
|
||||||
WHERE status = 4
|
SELECT id
|
||||||
);
|
FROM tasks
|
||||||
|
WHERE status = 4
|
||||||
|
);
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
id,
|
id,
|
||||||
source_file,
|
source_file,
|
||||||
cmd_arg0,
|
cmd_arg0,
|
||||||
cmd_arg1,
|
cmd_arg1,
|
||||||
cmd_arg2,
|
cmd_arg2,
|
||||||
cmd_arg3,
|
cmd_arg3,
|
||||||
cmd_arg4,
|
cmd_arg4,
|
||||||
cmd_arg5,
|
cmd_arg5,
|
||||||
cmd_arg6,
|
cmd_arg6,
|
||||||
cmd_arg7,
|
cmd_arg7,
|
||||||
cmd_arg8,
|
cmd_arg8,
|
||||||
cmd_arg9,
|
cmd_arg9,
|
||||||
cmd_arg10,
|
cmd_arg10,
|
||||||
cmd_arg11,
|
cmd_arg11,
|
||||||
cmd_arg12,
|
cmd_arg12,
|
||||||
cmd_arg13,
|
cmd_arg13,
|
||||||
cmd_arg14,
|
cmd_arg14,
|
||||||
cmd_arg15,
|
cmd_arg15,
|
||||||
cmd_arg16,
|
cmd_arg16,
|
||||||
cmd_arg17,
|
cmd_arg17,
|
||||||
cmd_arg18,
|
cmd_arg18,
|
||||||
cmd_arg19,
|
cmd_arg19,
|
||||||
cmd_arg20,
|
cmd_arg20,
|
||||||
cmd_arg21,
|
cmd_arg21,
|
||||||
cmd_arg22,
|
cmd_arg22,
|
||||||
cmd_arg23,
|
cmd_arg23,
|
||||||
cmd_arg24,
|
cmd_arg24,
|
||||||
cmd_arg25,
|
cmd_arg25,
|
||||||
cmd_arg26,
|
cmd_arg26,
|
||||||
cmd_arg27,
|
cmd_arg27,
|
||||||
cmd_arg28,
|
cmd_arg28,
|
||||||
cmd_arg29,
|
cmd_arg29,
|
||||||
cmd_arg30,
|
cmd_arg30,
|
||||||
cmd_arg31,
|
cmd_arg31,
|
||||||
cmd_arg32,
|
cmd_arg32,
|
||||||
cmd_arg33,
|
cmd_arg33,
|
||||||
cmd_arg34,
|
cmd_arg34,
|
||||||
cmd_arg35,
|
cmd_arg35,
|
||||||
cmd_arg36,
|
cmd_arg36,
|
||||||
cmd_arg37,
|
cmd_arg37,
|
||||||
cmd_arg38,
|
cmd_arg38,
|
||||||
cmd_arg39,
|
cmd_arg39,
|
||||||
cmd_arg40,
|
cmd_arg40,
|
||||||
cmd_arg41,
|
cmd_arg41,
|
||||||
cmd_arg42,
|
cmd_arg42,
|
||||||
cmd_arg43,
|
cmd_arg43,
|
||||||
cmd_arg44,
|
cmd_arg44,
|
||||||
cmd_arg45,
|
cmd_arg45,
|
||||||
cmd_arg46,
|
cmd_arg46,
|
||||||
cmd_arg47,
|
cmd_arg47,
|
||||||
cmd_arg48,
|
cmd_arg48,
|
||||||
cmd_arg49,
|
cmd_arg49,
|
||||||
cmd_arg50,
|
cmd_arg50,
|
||||||
cmd_arg51,
|
cmd_arg51,
|
||||||
cmd_arg52,
|
cmd_arg52,
|
||||||
cmd_arg53,
|
cmd_arg53,
|
||||||
cmd_arg54,
|
cmd_arg54,
|
||||||
cmd_arg55,
|
cmd_arg55,
|
||||||
cmd_arg56,
|
cmd_arg56,
|
||||||
cmd_arg57,
|
cmd_arg57,
|
||||||
cmd_arg58,
|
cmd_arg58,
|
||||||
cmd_arg59,
|
cmd_arg59,
|
||||||
cleanup,
|
cleanup,
|
||||||
fileid,
|
fileid,
|
||||||
filename
|
filename
|
||||||
FROM tasks
|
FROM tasks
|
||||||
WHERE status = 0
|
WHERE status = 0
|
||||||
AND requires IN (
|
AND requires IN (
|
||||||
SELECT id
|
SELECT id
|
||||||
FROM tasks
|
FROM tasks
|
||||||
WHERE status = 4
|
WHERE status = 4
|
||||||
ORDER BY source_file
|
ORDER BY source_file
|
||||||
/* LIMIT 1 */
|
/* LIMIT 1 */
|
||||||
)
|
)
|
||||||
ORDER BY source_file
|
ORDER BY source_file
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
'>&3
|
'>&3
|
||||||
|
|
||||||
read -u4 ready
|
read -u4 ready
|
||||||
if (( ready > 0 ))
|
if (( ready > 0 ))
|
||||||
then
|
then
|
||||||
createworker
|
createworker
|
||||||
return 0
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
SELECT COUNT(*)
|
SELECT COUNT(*)
|
||||||
FROM tasks
|
FROM tasks
|
||||||
WHERE status = 0
|
WHERE status = 0
|
||||||
AND requires is NULL;
|
AND requires is NULL;
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
id,
|
id,
|
||||||
source_file,
|
source_file,
|
||||||
cmd_arg0,
|
cmd_arg0,
|
||||||
cmd_arg1,
|
cmd_arg1,
|
||||||
cmd_arg2,
|
cmd_arg2,
|
||||||
cmd_arg3,
|
cmd_arg3,
|
||||||
cmd_arg4,
|
cmd_arg4,
|
||||||
cmd_arg5,
|
cmd_arg5,
|
||||||
cmd_arg6,
|
cmd_arg6,
|
||||||
cmd_arg7,
|
cmd_arg7,
|
||||||
cmd_arg8,
|
cmd_arg8,
|
||||||
cmd_arg9,
|
cmd_arg9,
|
||||||
cmd_arg10,
|
cmd_arg10,
|
||||||
cmd_arg11,
|
cmd_arg11,
|
||||||
cmd_arg12,
|
cmd_arg12,
|
||||||
cmd_arg13,
|
cmd_arg13,
|
||||||
cmd_arg14,
|
cmd_arg14,
|
||||||
cmd_arg15,
|
cmd_arg15,
|
||||||
cmd_arg16,
|
cmd_arg16,
|
||||||
cmd_arg17,
|
cmd_arg17,
|
||||||
cmd_arg18,
|
cmd_arg18,
|
||||||
cmd_arg19,
|
cmd_arg19,
|
||||||
cmd_arg20,
|
cmd_arg20,
|
||||||
cmd_arg21,
|
cmd_arg21,
|
||||||
cmd_arg22,
|
cmd_arg22,
|
||||||
cmd_arg23,
|
cmd_arg23,
|
||||||
cmd_arg24,
|
cmd_arg24,
|
||||||
cmd_arg25,
|
cmd_arg25,
|
||||||
cmd_arg26,
|
cmd_arg26,
|
||||||
cmd_arg27,
|
cmd_arg27,
|
||||||
cmd_arg28,
|
cmd_arg28,
|
||||||
cmd_arg29,
|
cmd_arg29,
|
||||||
cmd_arg30,
|
cmd_arg30,
|
||||||
cmd_arg31,
|
cmd_arg31,
|
||||||
cmd_arg32,
|
cmd_arg32,
|
||||||
cmd_arg33,
|
cmd_arg33,
|
||||||
cmd_arg34,
|
cmd_arg34,
|
||||||
cmd_arg35,
|
cmd_arg35,
|
||||||
cmd_arg36,
|
cmd_arg36,
|
||||||
cmd_arg37,
|
cmd_arg37,
|
||||||
cmd_arg38,
|
cmd_arg38,
|
||||||
cmd_arg39,
|
cmd_arg39,
|
||||||
cmd_arg40,
|
cmd_arg40,
|
||||||
cmd_arg41,
|
cmd_arg41,
|
||||||
cmd_arg42,
|
cmd_arg42,
|
||||||
cmd_arg43,
|
cmd_arg43,
|
||||||
cmd_arg44,
|
cmd_arg44,
|
||||||
cmd_arg45,
|
cmd_arg45,
|
||||||
cmd_arg46,
|
cmd_arg46,
|
||||||
cmd_arg47,
|
cmd_arg47,
|
||||||
cmd_arg48,
|
cmd_arg48,
|
||||||
cmd_arg49,
|
cmd_arg49,
|
||||||
cmd_arg50,
|
cmd_arg50,
|
||||||
cmd_arg51,
|
cmd_arg51,
|
||||||
cmd_arg52,
|
cmd_arg52,
|
||||||
cmd_arg53,
|
cmd_arg53,
|
||||||
cmd_arg54,
|
cmd_arg54,
|
||||||
cmd_arg55,
|
cmd_arg55,
|
||||||
cmd_arg56,
|
cmd_arg56,
|
||||||
cmd_arg57,
|
cmd_arg57,
|
||||||
cmd_arg58,
|
cmd_arg58,
|
||||||
cmd_arg59,
|
cmd_arg59,
|
||||||
cleanup,
|
cleanup,
|
||||||
fileid,
|
fileid,
|
||||||
filename
|
filename
|
||||||
FROM tasks
|
FROM tasks
|
||||||
WHERE status = 0
|
WHERE status = 0
|
||||||
AND requires is NULL
|
AND requires is NULL
|
||||||
ORDER BY source_file
|
ORDER BY source_file
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
' >&3
|
' >&3
|
||||||
|
|
||||||
read -u4 ready
|
read -u4 ready
|
||||||
|
|
||||||
if (( active == 0 && ready == 0 ))
|
if (( active == 0 && ready == 0 ))
|
||||||
then
|
then
|
||||||
dumpfile="$tempdir/tasks-$(date -Iseconds).csv"
|
dumpfile="$tempdir/tasks-$(date -Iseconds).csv"
|
||||||
cat <<-EOF
|
cat <<-EOF
|
||||||
|
|
||||||
|
|
||||||
$remaining TASKS LEFT, NONE READY!
|
$remaining TASKS LEFT, NONE READY!
|
||||||
|
|
||||||
Something went wrong, dumping tasks table to $dumpfile
|
Something went wrong, dumping tasks table to $dumpfile
|
||||||
EOF
|
EOF
|
||||||
cat >&3 <<-EOSQL
|
cat >&3 <<-EOSQL
|
||||||
.mode csv
|
.mode csv
|
||||||
.headers on
|
.headers on
|
||||||
.output $dumpfile
|
.output $dumpfile
|
||||||
SELECT * from tasks;
|
SELECT * from tasks;
|
||||||
.mode list
|
.mode list
|
||||||
.headers off
|
.headers off
|
||||||
.output stdout
|
.output stdout
|
||||||
COMMIT;
|
COMMIT;
|
||||||
EOSQL
|
EOSQL
|
||||||
closeDatabase
|
closeDatabase
|
||||||
echo "Waiting for children to come back home..."
|
echo "Waiting for children to come back home..."
|
||||||
wait
|
wait
|
||||||
echo $'\nGood luck!'
|
echo $'\nGood luck!'
|
||||||
exit 1
|
exit 1
|
||||||
elif (( ready == 0 ))
|
elif (( ready == 0 ))
|
||||||
then
|
then
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
else
|
else
|
||||||
createworker
|
createworker
|
||||||
fi
|
fi
|
||||||
|
echo '
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM tasks
|
||||||
|
WHERE status = 0;
|
||||||
|
'>&3
|
||||||
|
|
||||||
|
read -u4 remaining
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user