~ use c++11 function to detect ncpus
~ update contract information