using abort() instead of exit() because of some ISPC bug