На чем основываются все компьютерные программы

Содержание

Я прочитал в учебнике Фонда вычислительной техники (Behrouz A. Forouzan), что программа модели фон Неймана должна выполняться последовательно, а современный компьютер выполняет код в наиболее эффективном порядке. Но это не говорит, что последовательный подход фон Неймана является наиболее эффективным.

Так современный компьютер выполняет код таким образом?

изменён Jaken Herman 124
задан RexYuan 142

5 ответов 5

Архитектурно, то есть в отношении того, что видит программное обеспечение, современные процессоры используют последовательную модель фон Неймана. Однако большинство высокопроизводительных процессоров используют неупорядоченное выполнение, что позволяет выполнять операции не в последовательном порядке, но их эффекты фиксируются в программном порядке.

(Некоторые ранее у процессоров по порядку были неточные исключения, вызванные операциями, начинающими выполнение по порядку, но результаты были зафиксированы по мере их появления. Это означает, что операция с более короткой задержкой, такая как сложение целых чисел, наступающая после операции с более длинной задержкой, такой как умножение с плавающей запятой, может записать свой результат в регистр до завершения операции с более длинной задержкой. Если прерывание или исключение возникли до завершения операции с более длительным временем ожидания, состояние программы будет несовместимым.)

5. Какие бывают компьютерные программы?

Архитектура потока данных не выполняет программы последовательно, но масштабирование аппаратного обеспечения обработки зависимостей проблематично (даже современные высокопроизводительные процессоры с ошибками имеют окна выполнения, из которых запланированные операции-кандидаты менее 100 операций) и обеспечивают корректность (особенно для программное обеспечение, где формальные методы встречаются реже) также сложно. Чтобы получить представление о дизайне, каждая операция обрабатывается как отдельный поток, который может начать выполнение, как только доступны исходные операнды, и может зафиксировать свой результат, как только операция завершится (что позволяет операциям ожидать только этого результата, чтобы начать выполнение. ). На уровне машинного языка это можно рассматривать как окончательный многопоточный код спагетти.

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

ответ дан Paul A. Clayton 1k

Ключевое различие между основными архитектурами фон Неймана и Гарварда заключается в том, что в Гарварде память данных и программ разделена. Сегодняшние ПК используют для этого общую память, хотя некоторые области памяти могут быть помечены как неисполняемые, для них используется одна и та же шина данных. Таким образом, с этой точки зрения, архитектуры ПК, безусловно, фон Неймана.

Какая самая полезная программа для ПК? #HappyPC

Современные процессоры для настольных ПК, однако, будут переупорядочивать инструкции, основываясь на эффективности, но, насколько я понял, это не ключевой момент для архитектуры фон Неймана.

ответ дан Jonas Schäfer 1k

Программа модели фон Неймана должна выполняться последовательно

современный компьютер выполняет код в наиболее эффективном порядке.

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

Таким образом, современные процессоры все еще работают последовательно — я думаю, что официальным «обходным путем» к этому было введение логических процессоров — технология Intel Hyperthreading позволила многим операциям перекрываться и происходить одновременно, а интерфейс, который она представляла потоку команд, был вторым логическим процессором ,

Но это не говорит, что последовательный подход фон Неймана является наиболее эффективным.

Что ж, когда компьютеры становятся медиаустройствами, если ЦПУ приходится загружать большие объемы данных, но с простыми операциями, не требующими большого количества решений, чистый последовательный подход не эффективен. Таким образом, были введены SIMD-инструкции, которые позволяют ЦП загружать набор значений и запускать операции на всех из них за один цикл. И, конечно, графические процессоры работают по-разному, со многими, многими «ядрами», которые выполняют простые математические операции с огромными объемами данных в параллельном режиме.

Читайте также:
Обзор программы для монтажа

Источник: poweruser.guru

Тьюринг, помоги! Похож ли наш мозг на компьютер?

Бросьте в меня камень, если вы никогда не слышали этого сравнения: «Мозг человека — это компьютер». Эта простая метафора вызывает холивары во всем мире, сталкивает лбами интеллектуалов и, возможно, стала причиной нескольких инсультов. Одни утверждают, что человеческое мышление не может уложиться в бинарные рамки компьютерной программы. Другие — что, невзирая на свое богатство, наше мышление остается пусть превосходным, но процессором. Но и сторонники, и противники забывают о главном: спорят они не о метафоре, а о гипотезе.

Больная метафора

Чтобы аргументированно рассуждать о мозге как компьютере, для начала нужно определиться с тем, что мы называем компьютером. Давайте пойдем от противного: от того, чем компьютер не является.

Компьютер — это точно не коробочка под вашим столом, не ноутбук на ваших коленях и не смартфон в ваших руках. Микрочипы, оперативная память и кэш — это лишь элементы компьютера. Если воспринимать его как пластиковую коробку с электронной начинкой, то, конечно, вы смело можете сказать, что мозг — точно не компьютер. Ну хотя бы потому, что серое вещество после вашего выключения не может служить жестким диском, и к вашей памяти ни у кого не будет доступа. Так вот, эту ошибку восприятия компьютера как коробочки с различными функциональными элементами совершают многие противники нашей метафоры.

Другие решительные противники сравнения мозга с компьютером часто вспоминают о том, что компьютерная метафора — лишь очередной пункт в целой серии исторических технологических сравнений. С чем только мозг не сравнивали после очередного технологического прорыва — и с гидросистемой, и с телеграфом, и с телефонным коммутатором… Теперь вот настал черед компьютера.

Так в чем же их ошибка? Дело в том, что сравнение мозга с компьютером — это не про технологии совсем. Сравнение берет начало из формального определения компьютера, которое впервые дал в 1936 году Алан Тьюринг . Для справки: в 1945 году Джон фон Нейман разработал архитектуру современного компьютера. А сами современные компьютеры появились только в 50-х годах прошлого века.

Историки до сих пор спорят о том, что же можно считать первым компьютером. Но сходятся они в одном: до 1936-го компьютеров не было. Размышления Тьюринга по большому счету касались не вычислительных систем, а человека: он изучал способности к решению задач, к вычислениям, к построению логической последовательности. Компьютеру было дано формальное определение еще до того, как он появился.

Здоровая метафора

Ну так что же мы имеем в виду, когда называем мозг компьютером? Что означает компьютер в этой метафоре? Ответ примерно такой: мы имеем в виду машину, выполняющую алгоритм, то есть универсальную машину Тьюринга .

Итак, согласно этому определению, нам нужно несколько ключевых компонентов.

  1. Вводные данные, записанные в виде символов.
  2. Место для введения этих данных (по мнению Тьюринга, это должен быть огромный рулон бумаги).
  3. Набор инструкций (алгоритм) для перевода вводных данных в выходные данные.

Самое главное здесь, конечно, алгоритм — набор конкретных действий: они должны быть дискретными, то есть обособленными, например «делай А, затем Б, затем С». Действий может быть сколько угодно. К тому же их можно организовывать в цикл, например:

  1. Врезаться со всей дури в стену.
  2. Потереть голову.
  3. Повторить шаг (1).

Можно создавать действиям условия, но они всё равно останутся дискретными:

Да, наша голова работает по алгоритмам

Есть только два способа проверить версию об алгоритмичности нашего мозга. Первый: мы предполагаем, по какому алгоритму действуют животные, а потом проверяем, соответствует ли активность нейронов предложенному алгоритму. Второй: мы измеряем активность нейронов во время поведенческого действия, а затем смотрим, какой алгоритм может соответствовать этому действию.

Наука пробовала и тот, и другой подход. Давайте начнем с того, который сперва изучает поведение. Мы уже достаточно много знаем о поведении животных (к миру которых и сами принадлежим).

Существует тонна экспериментов, в которых мы просим субъекта сделать выбор между двумя предметами.

Один из самых популярных выглядит так: мы показываем людям набор хаотично двигающихся точек, однако среди этих точек есть несколько таких, которые передвигаются в одном и том же направлении (влево или вправо). Далее мы просим участников эксперимента найти эти точки и сказать, в каком направлении они двигаются. Участник смотрит на экран, наблюдает за точками, а потом выдает ответ.

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

Ну что ж, раз мы пришли к алгоритму, влияющему на поведение, самое время определить, что же происходит в мозге во время принятия решения.

В мозге обезьян, принимающих решения, можно увидеть несколько видов активности: нарастание активности, связанной с верным выбором, и спад активности, связанной с неверным.

В научно-исследовательской лаборатории Майкла Шадлена показали, что каждый скачок активности точно соответствует шагам алгоритма принятия решений, то есть активность нейронов повторяет алгоритм , с которым мы столкнулись при наблюдении за поведением.

Читайте также:
1с 8 проф что входит в программу

Есть и примеры экспериментов, которые идут от обратного: сначала изучение нейронной активности, а затем — подбор алгоритма, который ей соответствует. Самый известный — дофаминовая теория получения вознаграждения . Автор теории, профессор Вольфрам Шульц, продемонстрировал, как вырабатывается дофамин в ответ на поощрение. Ученый зарегистрировал несколько потрясающих наблюдений.

Например, дофаминовая активность была замечена только при неожиданной награде. Как только нейроны «понимали», при каких условиях выдается награда, выброса дофамина не следовало.

На основе экспериментальных данных Шульца две независимые группы ученых (Рид Монтаг и Петер Даян и Джим Хук и Анди Барто) предположили, что нейроны при выработке дофамина используют алгоритмы теории обучения с подкреплением.

Алгоритмы этой теории работают так: есть несколько вариантов действий. Решение принимается на основе предполагаемых последствий от выбора того или иного действия. После принятия решения вычисляется разница между предполагаемыми последствиями и реальным исходом. Если последствия соответствовали предполагаемым, ошибки не было, значит, поведение не нуждается в корректировке.

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

Согласно данным Шульца, дофаминовые нейроны дают обратную связь по всем трем вариантам исходов: и при отсутствии ошибки, и при положительной, и при отрицательной. Удивительно, как совпали дискретные шаги алгоритма и активность нейронов в мозге.

Нет, наша голова не работает по алгоритмам

Вроде бы набрали много свидетельств алгоритмической работы нашего мозга.

Вообще-то, большая часть нейронаук основывается на его алгоритмичности: какую публикацию ни открой — мозг все время что-то вычисляет и рассчитывает.

Влиятельный исследователь Дэвид Марр ставит вопрос так: ищем алгоритмы, а потом ищем часть мозга, которая запускает их. Но есть и те, кто задает вопрос иначе: если не алгоритмы, то что?

На него тоже есть ответ. Нам известно огромное количество действий, которыми мозг управляет без алгоритмов. Мы ходим, бегаем и ползаем, не вовлекая алгоритмической деятельности. При этих повторяющихся сокращениях разных групп мышц регистрируются такие же повторяющиеся всплески активности целых групп взаимосвязанных нейронов — они самостоятельно управляют движениями мышц.

Подобные нейронные цепочки возникают в мозге каждый раз, когда в теле происходят ритмичные процессы (хотя работой сердца управляет собственная фиксированная цепочка) — когда мы жуем, плаваем, дышим.

А что с единичными движениями? Например, когда мы поднимаем руку, чтобы взять стакан. Движение не повторяющееся, но и алгоритмов для его выполнения не требуется. При таких движениях происходит серия быстрой смены активности в нейронах зоны моторной коры, ответственной за руку. Они передают сигнал спинному мозгу, который передает его мышцам.

Что здесь за алгоритм?

Здесь можно возразить: ну конечно, это всего лишь движения! Сложные процессы вроде памяти, планирования и мышления должны требовать вычислительных мощностей, а не просто динамической обработки.

Вообще-то, даже сложные процессы могут обойтись простой динамикой.

Вот механическое решение для работы памяти. Нам уже несколько десятилетий известно, что простое воспоминание может сохраняться и воспроизводиться активностью простой цепочки нейронов в ответ на определенные вводные данные. С их помощью запах поджаренного хлеба может вызывать в нас сложное воспоминание о визите к бабушке в далеком детстве.

А вот механическое решение для формирования прогноза. Наш мозг часто занимается прогнозированием. В этом процессе вознаграждение достаточно неопределенно: сдав отчеты вовремя, вы можете получить повышение, а можете и не получить.

Недавние исследования показали, как сеть нейронов, беспрерывно посылающих сигналы друг другу, занимаются прогнозированием. К примеру, определенная сеть нейронов решает судоку.

Есть механическое решение для почти любой задачи, связанной с вводными данными. Например, машины с неустойчивым состоянием (особый вид нейросети) представляют собой группу смоделированных нейронов, связанных между собой случайным образом и беспрерывно посылающих друг другу импульсы.

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

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

Влиятельный физик и математик Роджер Пенроуз посвятил две увесистые книги размышлениям о том, что мозг — это не компьютер. Но каким-то образом от этого простого утверждения он перешел к мысли о существовании квантового сознания, не допустив золотой середины. Ведь все может быть гораздо проще: мозг постоянно находится в движении, которое может подчиняться алгоритмам, а может и не подчиняться.

«Мозг как компьютер» — это не метафора, а гипотеза, которую вполне можно проверить. Чем ученые и занимаются прямо сейчас.

Ни одно исследование не сможет доказать, что вот эта определенная часть мозга работает по алгоритму Х. В науке так не бывает. Подтверждениями гипотезы служат многочисленные работы со всего мира, собираемые по крупицам. Так что точного ответа мы пока не знаем.

Считаю ли я мозг компьютером? Нет. Я готов оказаться неправым. Более того, я написал множество статей о том, как мозг реализует алгоритмы. Так что, как видите, я спокойно могу придерживаться двух точек зрения одновременно.

Подобная двойственность свойственна многим ученым: как только нужно выбрать между двумя полярно противоположными мнениями, становится ясно, что ни одно из них не может быть полностью верным.

Человеческий мозг просто создан для подобной двойственности. А может, это лишний раз доказывает, что он точно не компьютер?

Читайте также:
В какой программе рисуют винкс

Источник: knife.media

Во всём виноваты разработчики: как компьютерные системы крадут нашу продуктивность

image

Среднестатистические пользователи тратят до 20% драгоценного времени на решение банальных компьютерных проблем, как этого избежать?

Несмотря на то, что наши компьютеры сейчас гораздо мощнее и лучше, чем 15 лет назад, они всё ещё отнимают у нас до двадцати процентов времени пока мы за ними работаем, утверждают исследователи из Копенгагенского и Роскильдского университетов. По мнению учёных, общество может добиться большей продуктивности, если переосмыслить системы и больше вовлекать пользователей в их разработку.

Бесконечный индикатор загрузки или программа, которая вылетает без сохранения данных? А может системы и интерфейсы, требующие нелогичных процедур или попросту не работающие, как это задумывалось? К сожалению, подобная «борьба с компьютерами» всё ещё знакома большинству из нас.

По данным исследователей, мы теряем в среднем от 11% до 20% нашего времени перед компьютерами из-за систем, которые не работают или которые так трудно понять, что мы не можем выполнить желаемую задачу. И это реальная проблема, считает профессор Каспер Хорнбек. «Это невероятно, что цифра так высока.

Однако большинство людей реально часто испытывают разочарование при использовании компьютеров и могут рассказать как минимум одну ужасную историю о важной презентации в PowerPoint, которая не была сохранена, или о системе, которая вышла из строя в критический момент. Все знают, что трудно создать IT-системы, которые работают идеально и полностью соответствуют потребностям людей, но эта цифра должна быть намного ниже, и одна из причин этого — недостаточное участие обычных людей в разработке программ и систем», — говорит Хорнбек.

Профессор Мортен Херцум подчёркивает, что большинство разочарований связаны именно с выполнением совершенно обычных и базовых задач. «Разочарования не связаны с тем, что люди используют свои компьютеры для чего-то очень продвинутого. Чаще всего они испытывают проблемы при выполнении весьма повседневных задач.

Это упрощает вовлечение пользователей в выявление проблем, но также означает, что проблемы, которые не выявлены и не решены, вероятно, будут раздражать лишь большее количество пользователей», — утверждает Херцум. Для изучения этого вопроса исследователи опросили 234 человек, которые проводят от шести до восьми часов перед компьютером в своей повседневной работе.

Исследователи просили их сообщать о всех ситуациях, когда компьютер не работал должным образом или когда участники были разочарованы тем, что не могли выполнить задачу, которую хотели. Наиболее часто встречающимися проблемами участников были: «система работала медленно», «система временно зависала», «система вылетала», «трудно найти нужные вещи».

Участники обладали разными профессиями, такими как студент, бухгалтер, консультант и т.д. А некоторые и вовсе работали в IT-сфере, но даже у них возникали проблемы. «Некоторые участники исследования были IT-специалистами, а большинство других участников были продвинутыми компьютерными пользователями.

Тем не менее, все они сталкивались с этими проблемами, и оказывается, что это касается многих фундаментальных функций», — говорит Каспер Хорнбек. Участники исследования также ответили, что 84% эпизодов происходили раньше и что 87% эпизодов могут повториться.

И, по словам учёных, сейчас мы имеем те же фундаментальные проблемы, что и 15-20 лет назад. «Две самые большие категории проблем всё ещё связаны с недостаточной производительностью компьютеров и отсутствием должного удобства использования их интерфейсов», — утверждает Хорнбек. «Наши технологии сегодня могут делать гораздо больше, и они определённо стали лучше, но в то же время мы ожидаем от них ещё большего. Несмотря на то, что загрузки сейчас быстрее, они часто все ещё воспринимаются как раздражающе медленные», — дополняет коллегу Мортен Херцум.

По данным Датского статистического управления, в 2018 году 88% датчан использовали компьютеры, ноутбуки, смартфоны, планшеты или другие мобильные устройства на работе. В этом контексте новое исследование указывает на то, что на решение компьютерных проблем или банальное ожидание среднестатистический сотрудник может потратить до целого дня из всей рабочей недели. «В рабочих местах по всей Дании теряется немало продуктивности, потому что люди не могут выполнять свою обычную работу из-за того, что их компьютер не работает так, как должен.

Это вызывает множество разочарований для отдельных пользователей», — говорит Каспер Хорнбек. Иными словами, если люди реже будут сталкиваться с компьютерными проблемами, их продуктивность, в теории, должна сильно вырасти, а уровень раздражения должен снизиться.

По словам Хорнбека, положение можно исправить, например, вложив больше ресурсов в переосмысление того, откуда вообще на компьютере берутся ошибки, и как именно они мешают пользователям работать. Как вариант, разработчики могут заранее предусмотреть какие-то резервные ходы для оптимизации работы пользователей, чтобы повысить их многозадачность.

Именно поэтому разработчики программ и интерфейсов должны больше вовлекать обычных пользователей в проектирование систем, чтобы сделать их как можно более простыми в использовании и понимании. Ведь то, что может казаться логичным и удобным среднестатистическому разработчику, может быть крайне неудобно и непонятно для конечного пользователя. По мнению исследователей, нет плохих пользователей, есть только плохо спроектированные и реализованные системы. «Когда мы все окружены IT-системами, которые мы проклинаем, очень полезно допустить мысль, что, вероятно, проблема не в самих пользователях, а в тех, кто создаёт системы. Исследование ясно показывает, что есть ещё много возможностей для улучшений, и поэтому мы надеемся, что оно может привлечь больше внимания к созданию более удобных и продуктивных систем в будущем», — заключает Хорнбек.

Что, если ваша защита — это главная СЛАБОСТЬ? Подпишитесь на наш канал и стань супергероем цифрового мира .

Источник: www.securitylab.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru