Назад | Перейти на главную страницу

Что делает numactl --localalloc?

Что значит numactl --localalloc делать? Привязывает ли он выделение программ только к одному узлу, numactl --localalloc был запущен? Или он гарантирует, что всякий раз, когда программа выделяет данную память из своей локальной памяти?

--localalloc вызовет выделение памяти из локального пула для узла, на котором выполняется процесс, каким бы узлом он ни был.

Чтобы принудительно выполнить привязку к определенному процессору, --physcpubind опция должна быть указана. При использовании вместе с localalloc, он заставляет процесс запускаться на указанном узле и использовать память только из этого узла.

--preferred сообщает ему, что нужно выделять память из определенного узла, если это возможно, но если нет, использовать удаленную память.

Я понимаю документацию, что --localalloc будет выделять память на узле процессора, который сделал системный вызов. Это должно хорошо работать для приложений, в которых рабочие потоки прикреплены к отдельным процессорам, и в сочетании с malloc библиотеки, которые хранят пулы памяти для каждого потока, такие как TCMalloc.