Итак, у меня есть некоторый тяжелый в вычислительном отношении код, который может успешно выполнять 32 потока или более эффективно.У меня также есть доступ к кластеру через мою школу, которая имеет 32 процессорных ядра."Милая!"Вы могли бы сказать.
Но, увы, код становится очень несчастным, если у вас нет каждого потока, специально связанного с процессором.Что касается числовой склонности, моя реализация BLAS значительно повышает эффективность, если поток, на котором он работает, заменяется другим.Это не будет проблемой, за исключением того, что кластер находится в состоянии анархии.
Нет планировщика заданий или очереди, и кластер не будет мешать людям запускать задания, даже если все ресурсыо них уже говорят.
Вот мой вопрос: когда я вхожу в систему и хочу запустить свой код, я вижу уже четверых людей.Возможно, они выполняют некоторую комбинацию последовательных и параллельных заданий.Я хотел бы использовать столько потоков, сколько я могу эффективно (то есть все оставшиеся ресурсы в кластере).Как я могу определить какую-то меру того, что я могу использовать, или число потоков, используемых всеми другими пользователями, пиковую вычислительную нагрузку, которую они генерируют, или какую-то другую быстро доступную меру?
В настоящее время мойРешение состоит в том, чтобы запустить часть моего кода с 1 потоком, затем 2 потоками, затем .... затем 32 потоками и посмотреть, где я врезался в стену в реальном времени выполнения.Я отступаю от стены парой ниток и затем выполняю большую работу.Это займет несколько минут, и я бы хотел быстрее найти нужное количество потоков для запуска.
Спасибо,
- Эндрю
РЕДАКТИРОВАТЬ:
Ответ sehe определенно ответил на мой оригинальный вопрос о том, как получить номера потоков.Оказывается, это не так полезно, как я думала.Комментарий Фила поставил меня на продуктивный путь.То, что я делаю сейчас:
top -bn1 | grep load
, чтобы получить информацию.Для меня это является преимуществом, поскольку мое приложение основано на Matlab, и я могу выполнить вызов UNIX из сценария, чтобы время от времени получать эту информацию и адаптировать число потоков, которые я использую, к доступным ресурсам.
Спасибо, что поставили меня на правильный путь.
- Андрей