Радость познания | страница 22



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

Параллельные компьютеры

Первая тема касается параллельных компьютеров. Почти все современные компьютеры, обычные компьютеры, работают на компоновке или архитектуре, придуманной фон Нейманом[6], в которой существуют очень большая память, где хранится вся информация, и одна центральная область, в которой проводятся простые вычисления.

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

Некоторые шаги в этом направлении были предприняты на так называемых векторных процессорах. Если иногда вам необходимо выполнить одинаковые действия на многих различных элементах, вы, возможно, выполняете их одновременно. В принципе можно написать правильные программы стандартным способом, и тогда интерпретирующая программа автоматически поймет, когда полезно использовать эту векторную возможность. Такая идея применяется в компьютерах американской фирмы «Cray» и в японских «суперкомпьютерах». Другой проект состоит в том, чтобы взять большое число эффективно работающих относительно простых (но не слишком упрощенных) компьютеров и соединить их вместе в некоторую структуру. Тогда все они могут работать, составляя часть схемы. Каждый компьютер является совершенно независимым, причем они будут передавать информацию от одного к другому, когда один или другой в ней нуждается. Такого рода схема реализована, например, в Калтехе (Калифорнийском технологическом институте), в гиперкубе «Cosmic Cube», и представляет только одну из многочисленных возможностей. Сегодня многие конструируют такие машины. Другая возможность — распределить очень большое число очень малых центральных процессоров вокруг памяти. Каждый процессор общается только с малой частью памяти, и существует детально разработанная система взаимосвязей между ними. Примером такой машины является the Connection Machine (машина с переменной структурой связей с параллельными процессорами), созданная в MIT (Массачусетсом технологическом институте). Она имеет 64 000 процессоров и систему маршрутизации, в которой каждые 16 могут переговариваться с другими 16, и, таким образом, получается 4000 возможностей маршрутного соединения.