О лживых постах в ВК или сколько операций в секунду выполняет мозг человека
На написание этой статьи меня побудил пост одного из популярных пабликов ВКонтакте, в котором дословно было следующее: «Человеческий мозг в состоянии выполнять 1016 операций в секунду. Это значит, что его мощность до сих пор выше, чем мощность любого существующего на сегодняшний день компьютера.». Я разобрался кто круче, мозг, или компьютер.
Для начала разберемся, что это за операции в секунду, какова мощность вашего настольного компьютера, и какова мощность самого супермегапапского компа на планете.
Для измерения вычислительной мощности компьютеров используется единица измерения, называемая флопс (flops, flop/s). Флопс показывает, сколько операций с плавающей запятой выполняет компьютер за одну секунду. Кроме того, для измерения вычислительной мощности используется такое понятие, как тактовая частота. Тактовая частота процессора показывает, какое количество основных операций выполняет процессор в секунду, и измеряется в герцах. Основная операция, выполняемая процессором, может включать в себя множество операций с плавающей запятой, поэтому результаты измерения в флопсах и герцах различаются. Если вы найдете у себя на рабочем столе иконку «Мой компьютер», кликните по ней правой копкой мыши, в выпадающем меню откроете свойства, то истина для вас откроется. Найдите в открывшемся окне заголовок «Ситема», и там, напротив слова «процессор» будет указана тактовая частота вашего процессора. Скорее всего она будет иметь такой вид: «2.10 GHz». Число может незначительно отличаться. Так вот, 1 GHz — это 1000000000 герц, или один миллиард операций в секунду. Из этого следует, что при тактовой частоте 2.10 гигагерца проц выполняет 2100000000 операций в секунду. Это конечно побольше, чем 1016. При измерении в флопсах число возрастет в несколько раз.
Идем дальше. Суперкомпьютер Titan компании Cray inc. имеет приблизительную вычислительную мощность 20 петафлопс. 1 петафлопс равен 10^15 флопс. Можете сами подсчитать, какое получится число и сколько у него нулей. Как сказал один поэт: «Это ж долбануться. »
Теперь о головном мозге. Тут все не так просто, как с компьютерами. На современном этапе развития нейробиологии довольно трудно подсчитать вычислительную мощность мозга, и сравнить его с компьютером. Однако и так понятно, что мы не можем выполнять те же операции, что выполняет наш ноутбук с такой же скоростью и в таких же объемах. Очевидно, что комп мощнее, да? А вот и нет.
Давайте разберемся подробнее, как он работает.
Мозг — это биологическая нейронная сеть. Нейронная сеть состоит из нейронов, (в случае с мозгом — это клетки мозга), каждый из которых связан с другими нейронами. Место связи нейронов называется синапсом. Через синапс от одного нейрона передается химический или электрический импульс другому нейрону. Количество нейронов в головном мозге человека примерно равно 100000000000 (ста миллиардам). Данные в из разных источников немного различаются, но в целом картина схожа. Каждый из этих нейронов имеет от 7000 до 10000 синапсов. В среднем, через один синапс проходит 10 импульсов в секунду, т.е. мы имеем тактовую частоту 10 герц на одну синоптическую связь. А теперь занимательная математика: 100000000000 нейронов мы умножаем на 10000 их синоптических связей и умножаем все это на 10 герц. Мы получаем число с шестнадцатью нолями после единицы, а иначе 10^16. Так вот откуда взялось загадочное число 1016. Видимо оно просто трансформировалось в ходе бесконечного перепоста из паблика в паблик. И оказывается, что наш мозг имеет бОльшую вычислительную мощность, чем суперкомпьютер Titan. В конечном итоге автор поста о 1016 операциях в секунду был прав.
Работа со временем и памятью
На олимпиадах, перед тем, как начинать писать решение, вам всегда надо сперва ответить себе на вопрос: А зайдёт ли моя программа по памяти и по времени?
У каждой задачи есть свои ограничения, стандартное: 1 секунда, 256Mb памяти. Научимся работать с этим.
Когда вы решаете задачу, удобно полагать, что вы можете делать $2 \cdot 10^8$ простых операций в секунду, если вы пишите на C++. Однако, эта величина зависит от сервера, на котором работает тестирующая система, и поэтому правильнее сделать следующее(желательно, на пробном туре, дабы не тратить попытки): заслать в систему программу, которая делает $10^8$ операций и заведомо укладывается в ограничения по времени и посмотреть, сколько времени она будет работать.
Итак, вы знаете, какое максимальное число операций ваше решение может себе позволить. Как же теперь оценить, сколько операций выполняет ваше решение? Тут нам на помощь приходит асимптотика. Зная асимптотику вашего решения, вы можете прикинуть с точностью до константы, сколько действий совершает ваша программа. Например, решение за $O(n^2)$ при $n$ до $10^4$ $~-$ это ОК, при условии, что вы не повторяете ваше решение $100$ раз. А вот решение, которое выполняет около $n^3$ операций при $n$ до $10^3$ $~-$ это уже TL.
С памятью сложнее. Каждый тип потребляет свое количество байт. Основные типы перечислены ниже:
- bool — 1 байт (обратите внимание, что хоть bool и несёт в себе 1 бит информации, в силу некоторых особенностей архитектуры компьютера, на его хранение всё равно выделяется 1 байт памяти)
- char — 1 байт
- int — 4 байта
- long long — 8 байт
- double — 8 байт
Теперь давайте посмотрим на вашу программу. Допустим вы используете 3 переменные типа bool, 1 int и массив на 1000 long long. Тогда ваша программа использует — $1000 \cdot 8 + 3 + 4 = 8007$ байт, в 1 килобайте — 1024 байт, следовательно наша программа потребляет меньше 8 килобайт, в мегабайте также 1024 килобайт, следовательно наша программа потребляет гораздо меньше 1 мегабайта памяти и точно подходит под ограничения.
Следует также помнить, что если ваше решение использует рекурсию, то это приводит к дополнительным небольшим, но всё же затратам памяти, о чём важно помнить, если вы пишете чувствительное к ограничениям по памяти решение.
Автор конспекта: Глеб Лобанов, Александр Гришутин
По всем вопросам пишите в telegram @glebodin
сколько операций в секунду выполняет современный домашний компьютер
вообще герци это операций в секунду, дальше подсчитаешь?
зы у амд и интела Разные операции.
I7- 270000000000
AMD Athlon X2 Dual-Core 7850- 3800000000
рассчитуй из объема регистров проца и его тактовой частоты
I7- 270000000000
AMD Athlon X2 Dual-Core 7850- 3800000000
Средний здоровый мозг, все равно всегда будет быстрее, любого чипа. Только вдумайтесь 100 миллиардов нейронов и почти в 10 000 раз больше соединений нейронов аксонов – квадриллион вариантов в секунду просчет нашего мозга. Но это теория по настоящему никто не сможет этого просчитать и все что мы знаем о мозге это тоже теории человека, но в расчетах ученных выходит так. А по факту молитесь что бы никто и никогда не узнал как работает величайшая тайна человечества, или настанет его конец.
Что такое процессор (CPU)
В статье расскажем о том, что такое ЦП (центральный процессор), рассмотрим функции процессора и разберем как он работает.
Процессор – это устройство, отвечающее за обработку информации. Его называют по-разному: центральный процессор (ЦП) или центральное процессорное устройство (ЦПУ) или central processing unit (CPU), но все эти термины обозначают элемент, который является “мозгом” вычислительного устройства (смартфона, телевизора, компьютера, планшета, фотоаппарата, сервера).
Процессор представляет собой квадратную пластину со стороной около 5 сантиметров, с одной стороны которой находятся, похожие на ножки, коннекторы. С их помощью он прикрепляется к материнской плате – специальному элементу для установки дополнительных расширений.
(1).jpg)
Мощность процессора отвечает за скорость обработки команд и сказывается на продуктивности работы.
Что делает процессор
Зачем нужен процессор в устройствах? Он осуществляет управление всеми вычислительными операциями и элементами. Функции, которые выполняет ЦП:
- выполняет операции с данными оперативной памяти.
- создает команды и обрабатывает запросы от внутренних компонентов или внешних устройств.
- временное хранит данные о проделанных операциях или отданных командах.
- выполняет логические и арифметические операции с полученной информацией.
- передает итоги обработки информации внешним устройствам.
Из чего состоит процессор
Центральный процессор это не конечная деталь. Он состоит из трех составных частей:
Ядро отвечает за большую часть всех функций CPU. Оно выполняет расшифровку, чтение, отправку инструкций другим элементам или принимает инструкции от них. Одномоментно ядро способно выполнять только одну команду, происходит это за сотые доли секунд. Таким образом, наличие одного ядра говорит о том, что ПК или сервер будет выполнять все инструкции поочередно. Современное оборудование редко использует одноядерные процессоры, так как в этом случае оно работает очень медленно.
Ядро в свою очередь состоит еще из двух частей:
- Арифметико-логическое устройство (АЛУ). Оно осуществляет выполнение арифметических и логических операций.
- Устройство управления (УУ). Оно координирует работу всех частей процессора, его взаимодействие с внешним оборудованием. Происходит это с помощью электрических сигналов.
- Запоминающее устройство.
Это небольшая память процессора, в которой хранится информация о текущих командах и промежуточных результатах. Она состоит из кеша и регистров. Регистры отвечают за “запоминание” информации, а кеш хранит часто выполняемые инструкции. Обращение в кеш происходит быстрее, чем к оперативной памяти, поэтому объем кеш-память процессора влияет на скорость работы ЦПУ.
Это каналы для передачи команд внутри процессора.
Основные характеристики процессоров
- Сокет (Socket)
Это разъем для установки процессора на материнскую плату. Существует множество видов сокетов, поэтому при выборе ЦП нужно обратить внимание, чтобы его сокет подходил к материнской плате. Например, если на материнской плате разъем LGA 1151, то нужно выбирать процессор с таким же сокетом, иначе его нельзя будет установить.
- Тактовая частота
Этот параметр показывает количество обрабатываемых операций (тактов) в секунду. Измеряется в в мегагерцах (МГц) или гигагерцах (ГГц) Чем выше показатель тактовой частоты, тем выше производительность процессора.
Например, процессор с частотой 1 МГц обрабатывает 1 миллион операций в секунду, а процессор с частотой 1 ГГц – 1 миллиард операций.
(1).jpg)
Как было сказано выше, ядро – самая главная часть процессора и чем больше ядер, тем больше команд одновременно сможет обрабатывать ЦПУ. Чем больше ядер в процессоре, тем выше его производительность и скорость выполнения операций.
Показывает сколько потоков информации может обрабатывать одно ядро. Поток это технология, которая позволяет разделить производительность ядра, то есть физически ядро одно, а фактически оно может одновременно обрабатывать два процесса. На текущий момент не все процессоры обладают дополнительными потоками.
Кэш состоит из трех уровней памяти: L1, L2, L3. Чем больше памяти, тем лучше работает процессор.
Кэш первого уровня L1 — содержит те данные, которые могут потребоваться программе для выполнения инструкции,
Кэш второго уровня L2 — медленнее, в сравнении с кэшем первого уровня, но больше по размеру. Кэш L2 содержит информацию, которая может потребоваться в будущем.
Кэш третьего уровня L3 — самый большой и при этом самый медленный кэш. Его объем варьируется от 4 до 50 мегабайт.
- Разрядность процессора
Это количество бит информации, которые процессор может обрабатывать за один такт (операцию). Например, размер данных за такт равен 1 байту, процессор считает восьмиразрядным (8 bit), если размер данных 2 байта, то ЦПУ шестнадцатиразрядный (16 bit), при размере 4 байта – процессор тридцатидвухразрядный (32 bit), в случае с 8-байтовым размером данных процессор считается шестидесятичетырехразрядный (64 bit).
Чем больше размер обрабатываемых данных, тем выше производительность процессора.
Как работает процессор
ЦУ обрабатывает команды на языке двоичного кода, говоря простым языком: 0 – это “нет”, 1 – это “да”. Каждый запрос, приходящий процессору состоит из комбинаций двух чисел 0 и 1.
Все операции внутри процессора это повторяющийся цикл, который не останавливается, пока работает компьютер или сервер: взять инструкцию из памяти, прочитать и расшифровать команду, осуществить действия.
.jpg)
Рассмотрим как работает процессор компьютера более подробно:
- Блок управления процессора забирает из оперативной памяти, где находится программа, определенные данные и команды, которые требуется выполнить. Вся эта информация загружаются в кэш-память.
- Получив данные из кэша, процессор записывает их в регистры. При этом инструкции отправляются в регистры команд, а значения помещаются в регистры данных.
- После считывания инструкций и данных, арифметико-логическое устройство выполняет эти команды.
- Результаты выполнения команд записываются в регистры. Если вычисления завершены, то они записываются также в буферную память процессора. Так как число регистров небольшое, промежуточные результаты хранятся в кэш-памяти.
- Если цикл вычислений завершен, результат сохраняется в оперативной памяти компьютера, чтобы освободить место в буферной памяти ЦП для новых вычислений. Если кэш-память переполнена, то неиспользуемая информация отправляется в кэш нижнего уровня или в оперативную память.
Виды процессоров
Существуют процессоры для мелкой техники, такой как ноутбуки компьютеры, телефоны,их можно назвать настольные ЦП. Второй вид процессоров – серверные, предназначены для оборудования, работающего с огромными массивами данных.
Основные функции настольных процессоров – это выполнения функций домашних компьютеров: запуск нескольких программ, перемещение информации, работа с браузерами, запись данных на различные накопители, запуск игр, обработка фото- и видеоматериалов. Им не требуется большое число ядер, но необходима высокая тактовая частота.
Серверные процессоры могут работать с несколькими подключенными клиентами, поэтому им требуется большее число ядер, высокий объем кэш-памяти и поддержка больших объемов оперативной памяти.
Также различают типы процессоров по принципу выполнения команд:
- CISC (Complete Instruction Set Computing) – этот тип процессора с полным набором команд. Они характеризуется:
– большим количеством различных машинных команд, каждая команда выполняется за несколько тактов ЦП
– небольшим количеством регистров общего назначения
– различными форматами команд с разными длинами
– преобладанием множественной адресацией
- RICS (Restricted Instruction Set Computer) – процессор, повышение работоспособности которого происходит за счет упрощения инструкций. В ЦП с RISC-архитектурой применяется ограниченный набор быстрых команд.
Каждая команда выполняется за за один такт. В таких процессорах требуется меньшее число транзисторов, что снижает их энергопотребление и стоимость. Архитектура RISC использует наиболее простейшие команды, что упрощает процесс их выполнения. Более сложные команды обрабатываются как составные из “простых” команд.
- VLIW (Very Long Instruction Word) – процессоров, работающие через объединение простых команд в “связку”. Эти команды должны быть независимы друг от друга и осуществляться параллельно.
Архитектура VLIW известна с начала 80-х годов. Она основана на том, что задача эффективного параллельного выполнения команд возлагается на «разумный» компилятор (программу, переводящую команды в машинный код). Компилятор первоначально делает анализ всей инструкции, выбирает команды, которые могут быть выполнены одновременно. Затем объединяет такие команды в связки, которые рассматриваются как сверхдлинные команды. В результате получается несколько сверхдлинных команд, которые исполняются одновременно.
Как выбрать процессор
На рынке процессоров известны две крупные компании-производителя: AMD и Intel. Они находятся в тесной конкуренции друг с другом, хотя AMD стремится создать нишевый продукт с низкой ценой, а Intel нацелена на топовые, производительные процессоры с высокой эффективностью и низкой энергопотребляемостью.
Основные характеристики по которым необходимо выбирать процессор это: скорость работы (ГГЦ), количество ядер, объем кэш-памяти, тактовая частота (МГЦ или ГГЦ).
Прежде чем приступить к выбору CPU, необходимо определить для чего нужен процессор, какие задачи стоят перед оборудованием, на котором будет стоять ЦП.
Если вам требуется выполнения обычных задач (работа в поисковых системах, в Word и Excel, чтение почты) на ноутбуке или ПК, то вам достаточно встроенных процессоров, со стандартными параметрами.
Предположим, что вы хотите купить ноутбук для сетевых игр или для монтирования видеоматериалов. В этом случае вам потребуется более мощные характеристики оборудования. ПК для игр, обработки фото или видео лучше выбирать с процессорами у которых не менее четырех ядер.
Восьмиядерный ЦПУ потребуется для мощного персонального компьютера, например, под использование профессиональных программ (3ds Max, Adobe Lightroom Classic, SiSoftware Sandra 2020, Adobe Premiere Pro, AutoCAD) или для профессиональных геймеров.
Еще один важный показатель при выборе CPU – тактовая частота. У простых двухъядерных процессоров она 3,5 ГГц – это средний класс компьютеров. Чем выше уровень тактовой, тем быстрее работает процессор. Например, для игрового ноутбука желательно выбирать ЦП с частотой не менее 4 ГГц.
Выбор процессора для сервера это отдельная задача, которую лучше всего доверить специалисту. Кратко отметим, что стоит учитывать ряд параметров: характеристики CPU, структура и состав сервера, на какое количество пользователей он будет рассчитан, какой тип задач будет на нем выполняться (объемные вычисления, хранение данных, размещение программ с постоянным доступом к ним и т.д.). Также стоит учитывать бюджет, в рамках которого требуется приобрести оборудование.
Так как нагрузки на вычислительные системы быстро растут (появляются новые приложения и программы, которые обрабатывают больше информации), то при выборе процессора лучше сделать запас производительности примерно на 20-30% с перспективой на будущее.
Заключение
Назначение процессора – это обработка информации и выполнение различных команд. Без ЦПУ компьютер не будет работать, он выполняет абсолютно все задачи, даже самые простые. Процессор в оборудовании – как мозг внутри человека.
Мощность ПК и серверного оборудования зависит от процессора. При выборе устройств всегда отталкивайтесь от задач, которые вы планируете выполнять, также делайте запас производительности на случай увеличения нагрузки на оборудование.