`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Александр Москалюк

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

Gartner сегодня определил основную задачу в программировании на ближайшие несколько лет – разумное использование N-ядерных систем, которые сейчас стремятся производить хардварщики. Через четыре года 1,024-ядерные системы станут новой реальностью если не дома, то корпоративного дата-центра, а вот приложений, которые могут использовать такую распределенную архитектуру (при нераспределенной памяти), пока не очень-то и есть.

Попытки переносить сегодняшние программы на такую архитектуру, считает Гартнер – это приделывать тележке двигатель от Феррари, т.е. поедет наверное быстрее чем раньше, но элегантным решение не назовешь. Не очень-то поможет и виртуализация:

"Most virtualization software today cannot use all 64 processors, much less the 1,024 of the high-end box, and database software, middleware and applications all have their own limits on scalability," Mr. Claunch said.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+88
голосов

Напечатать Отправить другу

Читайте также

Чтобы решить эту проблему надо человека на генетическом уровне переделать. Представьте себе человека, который живет в 1024-рех параллельных контекстах и у него нет "раздвоения" личности.

Для понимания квантовой физики используют костыли в виде теории вероятности. Какие "костыли" понадобятся в данном случае - трудно даже представить.

Пам'ятаєте як в Парижі рахували кінське гуано, коли коні були засобом пересування? Які прогнози вони тоді робили теж не забули? І що змінилось? Правильно повністю змінились основні принципи засобів пересування.

В даному випадку - мало не повна аналогія. Благослови Боже розвиток квантового комп'ютингу

До аналогії дуже далеко! Бо квантову фізику розум людини зрозуміти не може на відміну від автівки.

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

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

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

Это квантовая физика - костыли для описания окружающего мира.
А теория вероятности - вполне благородный и состоявшийся математический аппарат. :-)

Ну якби було так, то де б були зараз 45nm, 32nm, і так далі...

Те, що дана сфера не так добре розвинена як деякі інші ще не значить, що це "костилі".

Останнє слово можна застосовувати лише у тому випадку коли існує багато рівноцінних гіпотез для пояснення одного явища...

Под словом "костыль" подразумевалось - модель, теория, гипотеза.
Так вот. Теория вероятностей, на мой взгляд, это фундамент, состоявшаяся теория - математический аппарат.
Квантовая физика - это модель, которая на данном этапе нас в большинстве случаев устраивает, пока устраивает.

Именно так, а не наоборот.
О чем я и не преминул высказать свое мнение.

Если речь о том, что принято считать "десткотопными" системами, то это нерешенная проблема мРАкетинга. Т.е. как втюхать то, что ВАААЩЕ никому не нужно:)

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

Боюсь, хардварщики то какраз понимают, что это помогает очень и очень редко :) при ЭТОЙ архитектуре. При 1024 ядрах боюсь 996 будут сильно заняты планированием задач для оставшихся 8-ми :)

не, 996 будут решать проблему энергопотребления работающих ;)

"Никому не нужно" - достаточно смелое заявление. Есть куча научного и околонаучного применения, где такие вычислительные мощности именно что нужны. И значительное удешевление вычислений может оказаться очень даже кстати.

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

Функциональные языки не панацея.

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

А сколько нужно человеко-лет чтобы уже созданный код перевести на все эти чудо Эрленги, Ф-шарпы и т.д. и т.п.

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

Хе, історія йде по спіралі...

Довольно элегантным способом решения может быть запуск потоков задач на отдельных ядрах. Например, процессор моего компьютера выполняет около 400 потоков при 20 запущеных задачах. Итак, имеем гипотетический 1024-х ядерный процессор, 400 ядер которого заняты выполнением потоков задач, еще 100 отвечают за обработку данных для вывода на экран, а неиспользуемые ядра находятся в режиме сна.

http://asmix.livejournal.com/403.html

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

К тому же в обычном режиме все эти 400 потоков спят (ожидают ввода/вывода, объект синхронизации и т.д.).

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

В данном случае имеет место высокоуровневая многозадачность. То есть когда программист, желая добиться максимальной производительности кода, запрашивает у ОС или ЦП доступное кол-во вычислительных ядер и запускает соответственное кол-во потоков.

И вообще всё обсуждение данной проблемы сводится к цитате братьев Стругацких:
” — Мы сами знаем, что она не имеет решения,— сказал Хунта, немедленно ощетиниваясь.— Мы хотим знать, как её решать.”

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT