URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 86066
[ Назад ]
Исходное сообщение
"Раздел полезных советов: Автоматическое определение в Linux ..."
Отправлено auto_tips , 19-Авг-12 23:05
Данный подход можно применять для обработки данных на компьютерных системах с разным количеством процессоров.Пример скрипта с использованием cppcheck
#!/bin/sh
COUNT=$(cat /proc/cpuinfo | grep 'model name' | sed -e 's/.*: //' | wc -l)
echo "number of detected CPUs =" $COUNT
cppcheck -j $COUNT --force --inline-suppr . 2>errors.txt
URL:
Обсуждается: https://www.opennet.ru/tips/info/2708.shtml
Содержание
- Автоматическое определение в Linux количества процессоров в скрипте,Андрей, 23:05 , 19-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Карбофос, 23:19 , 19-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Андрей, 04:53 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Карбофос, 12:45 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Аноним, 21:19 , 22-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Vee Nee, 23:11 , 19-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Карбофос, 23:25 , 19-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,pavlinux, 05:49 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Andrey Mitrofanov, 09:58 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Карбофос, 10:35 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Аноним, 10:38 , 23-Авг-12
- Автоматическое определение в Linux количества процессоров в скрипте,pavlinux, 03:49 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,pavlinux, 05:04 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Карбофос, 07:10 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,pavlinux, 01:09 , 21-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Карбофос, 00:52 , 22-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,pavlinux, 04:05 , 22-Авг-12
- Автоматическое определение в Linux количества процессоров в скрипте,Анонимуз, 15:24 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Карбофос, 15:41 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Анонимуз, 16:37 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Michael Shigorin, 17:39 , 24-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Аноним, 19:05 , 27-Окт-12
- Автоматическое определение в Linux количества процессоров в ...,Michael Shigorin, 20:14 , 27-Окт-12
- Автоматическое определение в Linux количества процессоров в ...,Andrey Mitrofanov, 23:22 , 20-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,pavlinux, 02:42 , 23-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,Аноним, 21:01 , 24-Авг-12
- Автоматическое определение в Linux количества процессоров в ...,pavlinux, 05:18 , 26-Авг-12
- Автоматическое определение в Linux количества процессорных ядер из скрипта,АнонимусРекс, 00:10 , 22-Авг-12
- Автоматическое определение в Linux количества процессорных я...,Карбофос, 00:50 , 22-Авг-12
- Автоматическое определение в Linux количества процессорных я...,Michael Shigorin, 02:55 , 24-Авг-12
- Автоматическое определение в Linux количества процессорных я...,Карбофос, 18:04 , 24-Авг-12
- Автоматическое определение в Linux количества процессорных ядер из скрипта,DelGod, 20:56 , 23-Авг-12
- Автоматическое определение в Linux количества процессорных я...,pavlinux, 05:41 , 26-Авг-12
- Автоматическое определение в Linux количества процессорных я...,zumm, 17:32 , 24-Авг-12
- Автоматическое определение в Linux количества процессорных я...,Michael Shigorin, 17:38 , 24-Авг-12
- Автоматическое определение в Linux количества процессорных я...,pavlinux, 05:54 , 26-Авг-12
- Автоматическое определение в Linux количества процессорных я...,Crazy Alex, 11:47 , 06-Сен-12
- Автоматическое определение в Linux количества процессорных ядер из скрипта,ананим, 00:14 , 29-Авг-12
- Автоматическое определение в Linux количества процессорных я...,sailor, 22:56 , 05-Май-13
- Автоматическое определение в Linux количества процессорных ядер из скрипта,ziplex, 15:18 , 26-Сен-18
Сообщения в этом обсуждении
"Автоматическое определение в Linux количества процессоров в скрипте"
Отправлено Андрей , 19-Авг-12 23:05
Хмм.. А зачем?? Типа каждый день отсылать статистику по кол-ву процов на мыло админа?? Плюс еще график от рисовать :)
Было бы неплохо описать задачу с которой столкнулись и для чего это?? Загрузку процессоров, понятно для чего в автоматическом режиме, но кол-во... Что-то я не догоняю - подскажите??
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Карбофос , 19-Авг-12 23:19
например, для параллельной обработки фотографий
отчасти проблематика была затронута здесь https://www.opennet.ru/tips/info/2498.shtml
то есть, немного переписав скрипт, его можно применять универсально для разных компов, с различным кол-вом процессоров
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Андрей , 20-Авг-12 04:53
Далек от этой темы.. Пока далек.. Но кто знает когда потребуется.. Спасибо :)
В любом случае, чтобы избежать подобных глупых вопросов, не помешало бы описание 'проблемы' в начале 'типса' :)
Спасибо еще раз..
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Карбофос , 20-Авг-12 12:45
это нужно для параллельного запуска заданий по обработке данных, для полного использования компьютерных ресурсов.
как раз с cppcheck и был приведен пример: запускается несколько параллельных потоков статической проверки исходников
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Аноним , 22-Авг-12 21:19
Например чтобы make пинать с нужным -j. Ну так, самый очевидный вариант :)
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Vee Nee , 19-Авг-12 23:11
Как вариант:
COUNT=$(lscpu -p=cpu | grep -v \# | wc -l)Не понимаю только, для чего вырезание заголовка строки sed-ом, вариант без него что-то упускает?
COUNT=$(grep 'model name' /proc/cpuinfo | wc -l)
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Карбофос , 19-Авг-12 23:25
благодарю за дополнение!
нет, не упускает. видимо, sed еще использовался для того, чтобы выдавать имя процессора, после этого просто ничего не меняли :)
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено pavlinux , 20-Авг-12 05:49
COUNT=$((`lscpu -p=cpu | tail -1`+1))
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Andrey Mitrofanov , 20-Авг-12 09:58
> Не понимаю только, для чего вырезание заголовка строки sed-ом, вариант без него что-то упускает?А wc?!%)
> COUNT=$(grep 'model name' /proc/cpuinfo | wc -l)
egrep -c '^processor' /proc/cpuinfo
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Карбофос , 20-Авг-12 10:35
кстати, тоже хорошая идея использовать как можно меньше утилит, мерси за сие!
grep -c '^processor' /proc/cpuinfo
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Аноним , 23-Авг-12 10:38
как все сложно в ваших линухах, толи дело во фре:
sysctl kern.smp.cpus
"Автоматическое определение в Linux количества процессоров в скрипте"
Отправлено pavlinux , 20-Авг-12 03:49
Кто больше вариантов определения процов?
#!/bin/sh # Вот этот самый Юникс-вей фен-шуйный, POSIX IEEE Std 1003.1-2001, все дела...
getconf _NPROCESSORS_ONLN;
# А дальше скриптодрочка.
echo $((`cat /sys/devices/system/cpu/online | cut -d"-" -f2`+1));
dmesg | grep "processors activated" | cut -d" " -f3;
Хардкор мазафака кульхацкер метод
#!/bin/sh cat >> /tmp/cpus.c << EOF
#include <stdio.h>
#include <unistd.h>
int main(void) {
printf("%ld\n", sysconf(_SC_NPROCESSORS_ONLN));
return 0;
}
EOF
gcc /tmp/cpus.c -o /tmp/cpus;
export CPU=$(/tmp/cpus)
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено pavlinux , 20-Авг-12 05:04
#!/bin/sh sed -ne '/processor/p;' /proc/cpuinfo | wc -l;
awk '/processor/{x++}; END {print x}' /proc/cpuinfo;
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Карбофос , 20-Авг-12 07:10
с комуляцией - вообще жесть.
спасибо за варианты :)слушай, а он разве в /proc/cpuinfo как раз не показывает только активированные процы?
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено pavlinux , 21-Авг-12 01:09
Да, только онлайновые!Где-то там: http://lxr.free-electrons.com/source/arch/x86/kernel/cpu/pro...
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Карбофос , 22-Авг-12 00:52
ну вот и речь об чем: нефиг забор городить из нескольких скриптов
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено pavlinux , 22-Авг-12 04:05
# getconf _NPROCESSORS_ONLN;как раз делает вот это
# echo $(('cat /sys/devices/system/cpu/online | cut -d"-" -f2'+1));
только тебе не видно :)
$ strace -e open getconf _NPROCESSORS_ONLN 2>&1 | grep sys
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3
"Автоматическое определение в Linux количества процессоров в скрипте"
Отправлено Анонимуз , 20-Авг-12 15:24
Процов? Насколько я заметил, тут речь идет исключительно о количестве ядер.
Ну, я понимаю, что обычно не количество сокетов интересует, а именно ядра, но почему бы так и не написать сразу?
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Карбофос , 20-Авг-12 15:41
это принципиально что-то меняет?
для меня лично ядро=процессор. точка.
можно, конечно, вступить в бессмысленный диспут, в том числе и затронуть HT.
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Анонимуз , 20-Авг-12 16:37
Для большинства людей операционная система = винда, а название статьи не соответствует содержимому.
Не-не, спорить тут не о чем, все хорошо.
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Michael Shigorin , 24-Авг-12 17:39
> Для большинства людей операционная система = виндаБольшинство людей таких слов-то не знают, из наблюдений...
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Аноним , 27-Окт-12 19:05
>> Для большинства людей операционная система = винда
> Большинство людей таких слов-то не знают, из наблюдений...А должны были?
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Michael Shigorin , 27-Окт-12 20:14
> А должны были?Здесь -- да, наверное.
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Andrey Mitrofanov , 20-Авг-12 23:22
> но почему бы так и не написать сразу?А в "процессора-а-ах" я зничиительно длинннее! <.)>
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено pavlinux , 23-Авг-12 02:42
А двайте регистрами меряться?!
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено Аноним , 24-Авг-12 21:01
И сколько сантиметров у тебя регистр?
"Автоматическое определение в Linux количества процессоров в ..."
Отправлено pavlinux , 26-Авг-12 05:18
> И сколько сантиметров у тебя регистр?strlen("sizeof(register);");
"Автоматическое определение в Linux количества процессорных ядер из скрипта"
Отправлено АнонимусРекс , 22-Авг-12 00:10
а где разделение на треды?
"Автоматическое определение в Linux количества процессорных я..."
Отправлено Карбофос , 22-Авг-12 00:50
если шапка жмёт - дополни
"Автоматическое определение в Linux количества процессорных я..."
Отправлено Michael Shigorin , 24-Авг-12 02:55
> если шапка жмёт - дополни Вообще в первом же Вашем примере наблюдается избыточное применение cat(1), да и остального:
echo "CPU cores available: `grep -c ^processor /proc/cpuinfo`"
А для адаптивного параллельного выполнения лучше сразу смотреть на parallel(1) или paexec(1).
"Автоматическое определение в Linux количества процессорных я..."
Отправлено Карбофос , 24-Авг-12 18:04
>echo "CPU cores available: `grep -c ^processor /proc/cpuinfo`"наблюдается избыточность и ненужность такой строки вообще. а мне нужно было значение переменной.
"Автоматическое определение в Linux количества процессорных ядер из скрипта"
Отправлено DelGod , 23-Авг-12 20:56
Количество физических процессоров
grep 'physical id' /proc/cpuinfo | sort -u | wc -lКоличиство Ядер в каждом из процесоров
grep 'core id' /proc/cpuinfo | sort -u | wc -l
"Автоматическое определение в Linux количества процессорных я..."
Отправлено pavlinux , 26-Авг-12 05:41
> Количество физических процессоров
> grep 'physical id' /proc/cpuinfo | sort -u | wc -lДа не, жирно слишком - и grep, и sort, и wc...
$ getconf _NPROCESSORS_ONLN;
> Количиство Ядер в каждом из процесоров
> grep 'core id' /proc/cpuinfo | sort -u | wc -l
12
4
8
А че, на моем кластере и 4-х ядерные есть и 8-ми и 12... :)
"Автоматическое определение в Linux количества процессорных я..."
Отправлено zumm , 24-Авг-12 17:32
гыгы#!/bin/sh
cat >> /tmp/cpus.f90 << EOF
program cpus_num
use omp_lib
write (*,*) omp_get_num_procs()
end program cpus_num
EOF
gfortran /tmp/cpus.f90 -fopenmp -o /tmp/cpus;
/tmp/cpus
"Автоматическое определение в Linux количества процессорных я..."
Отправлено Michael Shigorin , 24-Авг-12 17:38
> -fopenmpЭтак недалеко до "поставить оракл и сделать запрос". :)
(напомнило анекдот про выяснение чётности числа различными программистами)
"Автоматическое определение в Linux количества процессорных я..."
Отправлено pavlinux , 26-Авг-12 05:54
> (напомнило анекдот про выяснение чётности числа различными программистами) Как-то лет 12-13 назад, мерились в фидо, в RU.LINUX, кто-сколько,
придумает способов замены команды ls
"Автоматическое определение в Linux количества процессорных я..."
Отправлено Crazy Alex , 06-Сен-12 11:47
Мне, кстати, такие извращения когда-то пригодились - надо было разобраться с железкой, в которой было что-то адски ограниченное в роли шелла - в частности, ls не было. Обходился "echo *" и подобными.
"Автоматическое определение в Linux количества процессорных ядер из скрипта"
Отправлено ананим , 29-Авг-12 00:14
ну тады и от меня добавь:
1)
$ cat /sys/devices/system/cpu/online
0-7
$ cat /sys/devices/system/cpu/offline
$ cat /sys/devices/system/cpu/possible
0-7
$ cat /sys/devices/system/cpu/present
0-7
2)
# dmidecode -t processor|grep Thread
Thread Count: 8
# dmidecode -t processor|grep Core
Family: Core i7
Version: Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
Core Count: 4
Core Enabled: 4
"Автоматическое определение в Linux количества процессорных я..."
Отправлено sailor , 05-Май-13 22:56
COUNT=$(sed -ne '/processor/p;' /proc/cpuinfo | wc -l)
"Автоматическое определение в Linux количества процессорных ядер из скрипта"
Отправлено ziplex , 26-Сен-18 15:18
Забыли про утилиту nproc