use uuid for binary file names
remove an index bound check because of exceptional safety
fix bug when execution is failed
make generated binary files' names unique
decide the number of threads dynamically
revert 7d2203a
add noexcept for exception safe