Можно ли считать поток процессором?

Дата GNU может форматировать mtime файла как наносекунды с начала эпохи:

date +%s%N --reference file

Эти числа сопоставимы с test или '['. Он даже работает на bash v3.00 на i386 (32 -бит )системе (около 2008 ).

xxx=$(date +%s%N --reference file1)
yyy=$(date +%s%N --reference file2)
[ $xxx -lt $yyy ] && echo file1 is older than file2
0
11.08.2020, 15:22
1 ответ

Это зависит от того, что вы ищете.

Когда вы покупаете процессор, в нем четко говорится о гиперпотоке и количестве ядер, а также о том, можете ли вы использовать его на многопроцессорном -способе (нескольких сокетах ).

Давайте забудем о случаях, когда у нас несколько физических процессоров.

У нас на одном чипе несколько ядер :они могут иметь общий кеш, иначе они почти независимы. Но все же :некоторые задачи должны быть согласованы, поэтому с 4 ядрами у вас нет (обычно )4-кратной "мощности" 1 отдельного ядра.

Hyperthreads :это сложнее :это была уловка Intel (также до многоядерности -), там можно имитировать несколько процессоров. На самом деле вы можете выполнять только один поток за раз,но ЦП часто нужно делать паузы (, например. ожидание доступа к памяти или записи ). С гиперпоточностью ЦП мог быстро переключаться на второй виртуальный ЦП.

Таким образом, с гиперпоточностью вы часто получаете более высокую производительность по сравнению с одним обычным ЦП почти без затрат (немного больше логики, кэша и регистров, но без дублирующих транзисторов ), но два ядра все же лучше (по-прежнему не равно двум двум ЦП, но при численном расчете, когда две задачи полностью независимы, и ядро ​​не будет беспокоить задачи ).

Если у вас есть параллельные процессы, я бы часто использовал потоки, умноженные на ядра (и часто добавляю единицу к потокам или конечным результатам, если есть дискретное количество IO ). В этом случае вы получаете более высокую производительность (при условии отсутствия других ресурсоемких задач ):вы используете максимальную мощность, даже когда одно ядро ​​ожидает данных из памяти.

Но чтобы увеличить скорость -, я бы просто использовал количество ядер (, помня, что у меня будут лучшие данные ).

Итак, это зависит от того, что вы ищете. А если вы выполняете сложные задачи, вероятно, вы гораздо больше измеряете свои процессы и оптимизируете их (кэш, память, потоки, ядра, ЦП, MPI,... ). Каждая программа отличается по ресурсам.

0
18.03.2021, 23:13

Теги

Похожие вопросы