The default soft limit for the number of open file descriptors per-process in most Linux systems is 1024. This results in crashes on most HPC systems I've used recently as even simple lo2s invocations will exceed this limit with all the per-core perf_event_open calls.
According to systemd developer Poettering, this microscopic soft limit is in place because select() only allows fd's < 1024. If you do not plan to use select() in your code, it is safe to bump the file descriptor limit from the soft limit to the hard limit.
The default soft limit for the number of open file descriptors per-process in most Linux systems is 1024. This results in crashes on most HPC systems I've used recently as even simple lo2s invocations will exceed this limit with all the per-core
perf_event_open
calls.According to systemd developer Poettering, this microscopic soft limit is in place because
select()
only allows fd's < 1024. If you do not plan to useselect()
in your code, it is safe to bump the file descriptor limit from the soft limit to the hard limit.