Долго думал — всё казалось, что что-то нелогичное имеется в Вашем сообщении! Наконец понял — при чём тут SIMD? Ведь я занимаюсь фактически АНАЛИЗОМ АЛГОРИТМОВ (конкретно — на наличие скрытого в них параллелизма и его рационального использования); а разве где-то в алгоритмах есть (явное) упоминание об архитектурах вычислителей, на которых эти алгоритмы будут выполняться? Конечно же НЕТ… Так при чём тут SIMD или что-то иное? Вообще-то говоря, наверное какие-то из алгоритмов лучше "приспособлены" к определённым архитектурам (однако архитектуры "придуманы" позднее алгоритмов), но это вопрос долгих споров и долгого обсуждения…
А с другой стороны — предложены пути решения РЕАЛЬНОЙ проблемы (максимальное использование возможностей аппаратуры — чтобы поменьше было "NOP-пустышек" среди параллельно исполняющихся команд). Решение конкретное (количественное — в цифрах, а не "лучше бы так, а не этак"). Это не идеал, конечно… но обоснованно ПОКРИТИКУЙТЕ существующее и предложите ЛУЧШЕЕ!.. По-моему, такой подход (я имею в виду процесс ПОСТЕПЕННОГО УЛУЧШЕНИЯ) — единственно ведущий к РАЗВИТИЮ...
Вопрос естественный. Моя цель проста — показать, как в реальности можно решать СЛОЖНЫЕ вопросы (системного уровня) организации вычислений. Слишком много вижу публикаций уровня "как я научился использовать указатели" (утрирую, конечно — никаких обид). Очень хочется найти людей, интересующихся НОВЫМ — а не повторением известного. С 2016 г. стараюсь дать студентам ("Вышка" и МИРЭА) знания СИСТЕМНОГО уровня (придётся же людям не только программировать на известных ЯВУ, но и РАЗРАБАТЫВАТЬ ЭФФЕКТИВНЫЕ трансляторы!). Вот для таких людей и пишу — фактически распространяю имеющиеся знания и рекрутирую создателей нового)..!
Да, тоже работал! Даже "ручками" писал исходный текст (заместо Конструктора или дополнительно к нему)..! Потом работал с Borland'овским движком (Delphi/C++Builder)...
Да, красота… До сих пор помню Э-60, Фрязинские дисплеи!.. Из команд почему-то вспоминается семейство TRAP… Помнится так же QUASIC (Троицкие "биологические" мужики делали, кажется); сначала был интерпретатор, а след. версия — уже транслятор. Были даже функции прерываний (привязывались к адресу)!
По поводу "большой плотности текста" — я и так стыжусь
излишнего "размазывания"! Но понимаю, что читать будут
люди с самым разнообразным уровнем знаний в этой
области и поэтому стараюсь "угодить всем" (принцип
педагога)...
А почему бы Вам (не цепляясь к терминам, ибо они
всегда ВТОРИЧНЫ — я это прекрасно понимаю и иногда
позволяю себе "поиграть словами" напр., здесь: http://vbakanov.ru/poems_04.htm ), не постараться
проследить за ходом мысли публикаций (и, возможно,
в чём-то дальше продвинуть исследуемое направление)..!
Поверьте, вопросов (причём ВАЖНЫХ!) более чем
достаточно...
Со всем сказанным согласен — в каждой из имеющихся 6
статей я экспериментирую с формами подачи материала. А
насчёт "научности" в форме — делаю это специально, ибо
ужасно хочется привить Читателям любовь именно
РАЗМЫШЛЯТЬ (вижу, что подавляющее большинство статей на площадке представляют собой простое изложение информации).
Мне кажется, пора переходить (постепенно, конечно!) именно к
тому, к чему я призываю...
СКРЫТЫЙ ПАРАЛЛЕЛИЗМ имеет свои границы — не выжмешь больше, чем имеется в алгоритме… Реально "выжимается" ОЧЕНЬ НЕМНОГО того, что имеется в наличии (глубоко очень мало кто внутрь алгоритмов лезет). Самые жирные сливки сверху собраны — ну и достаточно! Конечно, алгоритмы нужно бы разрабатывать под параллельное исполнение — но получается, что самые эффективные (с точки зрения математики) алгоритмы обычно являются самыми сложными для программирования (напр., Штрассен)..!
Приятно слышать Ваше мнение! Вы правы, конечно — ничего принципиально нового нет. Просто сейчас "дым глаза замстИл" — почти никто не думает об использовании внутренних свойств алгоритмов "наилучшим образом". Налицо "головокружение
от успехов" (как тов. Сталин пИсывал). Огромное количество библиотек "думанию" как раз и не способствует…
Эта система нужна была для обучения молодёжи пониманию сути рационального использования внутреннего ресурса (в смысле потенциала параллелизма) алгоритмов. Выяснилось, что практически никто из "молодых" не представляет, откуда параллелизм берётся… с неба "дыхание господа" падает, что ли? То, что "хвост растёт" именно из алгоритмов (их свойств, конечно!) приходится буквально доказывать (и
мои системы как раз позволяют делать это).
Может, кто-то из молодых в будущем нечто новое, поразмыслив,
придумает в этой области! Так что предлагаемая работа — попытка "инъекции к размышлению"… // PS. А вот сравнение вычислительных трудоёмкостей различных методов получения планов выполнения параллельных программ и выбор лучших — совсем интересная (да и суперпрактичная тоже) вещь..!
Я, например, считаю VLIW идеологемой весьма перспективной — именно компилятор должен выявлять параллелизм и планировать его выполнение (хотя и Data-Flow меня интересует и я с наслаждением моделирую принципы работы потовых вычислительных систем). Itanium перестали выпускать из-за малой выгодности (рынок серверов меньше рынка персоналок), да ещё и перекомпилировать все исходники надо. Это пройдёт — рановато ИДЕЮ начали реализовывать, время ещё не пришло. В будущем к связке EPIC/VLIW ещё вернутся неоднократно. Посмотрите мною приведённые примеры ЯПФ и увидите, что случаи 1-3 команд во VLIW-связке бывают (и НИКУДА ОТ НИХ НЕ ДЕТЬСЯ — это свойство алгоритма), но редко. Идея помещения во VLIW-связку команд РАЗНЫХ ПРОЦЕССОВ сильно помогла бы, но это нарушает идею временнОго разделения ресурсов...
На сайте в переписке с (ещё живым одним из Братьев) им был задан вопрос о смысле понятия ХРАМ в ГО. Ответ — сумма всего накопленного Человечеством для улучшения жизни в области гуманизма, технологий etc etc (собственно, Изя так и говорит — но чуть метафорично)…
Я использовал ссылки на удачные места и цитаты АБС для "разрядки" ситуации при чтении текста (чтобы не становилось "мучительно больно" — и скучно — читать). Такое бывает при любом качестве публикации и время от времени требуется РАЗРядКА… Нпример, здесь: https://habr.com/ru/post/540122/… упоминание о тов. проф. Выбегалло и старикашке Эдельвейсе! Уверен, что такой приём полезно использовать всем..!
В МАЛЫШЕ (формально написанном для отчёта за полученный гонорар) есть удивительная фраза (ответ на вопрос, зачем Аборигены спасли Малыша — разговор Комова с Горбовским) — "… если цивилизация достаточно стара, гуманизм ее мог превратиться в безусловный социальный рефлекс, в социальный инстинкт. Ребенок был спасен просто потому, что в такой акции испытывалась потребность...". Удивительно сказано..!
MPI нужна была для обеспечения практики работы со студентами на кластере. Получилось неплохо — были разобраны несколько стратегий использования MPI (от фактически ILP до нормальной ленточной процедуры умножения матриц — один из плакатов презентации здесь: https://cloud.mail.ru/public/YfR4/TLkgFn7DY). Естественно, время выполнения каждой гранулы фиксируется по локальным часам ноды, вычитывается время передачи данных (кстати, первая часть исследования — определение латентности сети).
А насчёт красного пунктира разве нечётко в тексте сказано? Картинка примитивная, конечно, но как-то ведь проиллюстрировать нужно было…
Кстати, сейчас экспериментирую с "нижней" формой ЯПФ — очень интересно получается… Наверное, в марте подготовлю публикацию (решил "не более одной в месяц")!..
Извините, но в данном контексте "masssive" переводится как "мАссовый", а не "массИвный" (последнее связано с физикой). Несложно найти корректный перевод этого английского термина — будьте "тщательнЕе"...
Долго думал — всё казалось, что что-то нелогичное имеется в Вашем сообщении! Наконец понял — при чём тут SIMD? Ведь я занимаюсь фактически АНАЛИЗОМ АЛГОРИТМОВ (конкретно — на наличие скрытого в них параллелизма и его рационального использования); а разве где-то в алгоритмах есть (явное) упоминание об архитектурах вычислителей, на которых эти алгоритмы будут выполняться? Конечно же НЕТ… Так при чём тут SIMD или что-то иное? Вообще-то говоря, наверное какие-то из алгоритмов лучше "приспособлены" к определённым архитектурам (однако архитектуры "придуманы" позднее алгоритмов), но это вопрос долгих споров и долгого обсуждения…
А с другой стороны — предложены пути решения РЕАЛЬНОЙ проблемы (максимальное использование возможностей аппаратуры — чтобы поменьше было "NOP-пустышек" среди параллельно исполняющихся команд). Решение конкретное (количественное — в цифрах, а не "лучше бы так, а не этак"). Это не идеал, конечно… но обоснованно ПОКРИТИКУЙТЕ существующее и предложите ЛУЧШЕЕ!.. По-моему, такой подход (я имею в виду процесс ПОСТЕПЕННОГО УЛУЧШЕНИЯ) — единственно ведущий к РАЗВИТИЮ...
Вопрос естественный. Моя цель проста — показать, как в реальности можно решать СЛОЖНЫЕ вопросы (системного уровня) организации вычислений. Слишком много вижу публикаций уровня "как я научился использовать указатели" (утрирую, конечно — никаких обид). Очень хочется найти людей, интересующихся НОВЫМ — а не повторением известного. С 2016 г. стараюсь дать студентам ("Вышка" и МИРЭА) знания СИСТЕМНОГО уровня (придётся же людям не только программировать на известных ЯВУ, но и РАЗРАБАТЫВАТЬ ЭФФЕКТИВНЫЕ трансляторы!). Вот для таких людей и пишу — фактически распространяю имеющиеся знания и рекрутирую создателей нового)..!
Да, тоже работал! Даже "ручками" писал исходный текст (заместо Конструктора или дополнительно к нему)..! Потом работал с Borland'овским движком (Delphi/C++Builder)...
Да, красота… До сих пор помню Э-60, Фрязинские дисплеи!.. Из команд почему-то вспоминается семейство TRAP… Помнится так же QUASIC (Троицкие "биологические" мужики делали, кажется); сначала был интерпретатор, а след. версия — уже транслятор. Были даже функции прерываний (привязывались к адресу)!
По поводу "большой плотности текста" — я и так стыжусь
излишнего "размазывания"! Но понимаю, что читать будут
люди с самым разнообразным уровнем знаний в этой
области и поэтому стараюсь "угодить всем" (принцип
педагога)...
А почему бы Вам (не цепляясь к терминам, ибо они
всегда ВТОРИЧНЫ — я это прекрасно понимаю и иногда
позволяю себе "поиграть словами" напр., здесь:
http://vbakanov.ru/poems_04.htm ), не постараться
проследить за ходом мысли публикаций (и, возможно,
в чём-то дальше продвинуть исследуемое направление)..!
Поверьте, вопросов (причём ВАЖНЫХ!) более чем
достаточно...
Со всем сказанным согласен — в каждой из имеющихся 6
статей я экспериментирую с формами подачи материала. А
насчёт "научности" в форме — делаю это специально, ибо
ужасно хочется привить Читателям любовь именно
РАЗМЫШЛЯТЬ (вижу, что подавляющее большинство статей на площадке представляют собой простое изложение информации).
Мне кажется, пора переходить (постепенно, конечно!) именно к
тому, к чему я призываю...
СКРЫТЫЙ ПАРАЛЛЕЛИЗМ имеет свои границы — не выжмешь больше, чем имеется в алгоритме… Реально "выжимается" ОЧЕНЬ НЕМНОГО того, что имеется в наличии (глубоко очень мало кто внутрь алгоритмов лезет). Самые жирные сливки сверху собраны — ну и достаточно! Конечно, алгоритмы нужно бы разрабатывать под параллельное исполнение — но получается, что самые эффективные (с точки зрения математики) алгоритмы обычно являются самыми сложными для программирования (напр., Штрассен)..!
ВостОрженная статья про транслятор для VLIW под Эльбрус: https://zen.yandex.ru/media/electromozg/fishka-rossiiskogo-processora-elbrus-nagliadnyi-primer-rasparallelivaniia-koda-604ea09f126a3d455a57c2bf?&disable_feed_under_article=false
ВостОрженная статья про транслятор для VLIW под Эльбрус: https://zen.yandex.ru/media/electromozg/fishka-rossiiskogo-processora-elbrus-nagliadnyi-primer-rasparallelivaniia-koda-604ea09f126a3d455a57c2bf?&disable_feed_under_article=false
Приятно слышать Ваше мнение! Вы правы, конечно — ничего принципиально нового нет. Просто сейчас "дым глаза замстИл" — почти никто не думает об использовании внутренних свойств алгоритмов "наилучшим образом". Налицо "головокружение
от успехов" (как тов. Сталин пИсывал). Огромное количество библиотек "думанию" как раз и не способствует…
Эта система нужна была для обучения молодёжи пониманию сути рационального использования внутреннего ресурса (в смысле потенциала параллелизма) алгоритмов. Выяснилось, что практически никто из "молодых" не представляет, откуда параллелизм берётся… с неба "дыхание господа" падает, что ли? То, что "хвост растёт" именно из алгоритмов (их свойств, конечно!) приходится буквально доказывать (и
мои системы как раз позволяют делать это).
Может, кто-то из молодых в будущем нечто новое, поразмыслив,
придумает в этой области! Так что предлагаемая работа — попытка "инъекции к размышлению"… // PS. А вот сравнение вычислительных трудоёмкостей различных методов получения планов выполнения параллельных программ и выбор лучших — совсем интересная (да и суперпрактичная тоже) вещь..!
Я, например, считаю VLIW идеологемой весьма перспективной — именно компилятор должен выявлять параллелизм и планировать его выполнение (хотя и Data-Flow меня интересует и я с наслаждением моделирую принципы работы потовых вычислительных систем). Itanium перестали выпускать из-за малой выгодности (рынок серверов меньше рынка персоналок), да ещё и перекомпилировать все исходники надо. Это пройдёт — рановато ИДЕЮ начали реализовывать, время ещё не пришло. В будущем к связке EPIC/VLIW ещё вернутся неоднократно. Посмотрите мною приведённые примеры ЯПФ и увидите, что случаи 1-3 команд во VLIW-связке бывают (и НИКУДА ОТ НИХ НЕ ДЕТЬСЯ — это свойство алгоритма), но редко. Идея помещения во VLIW-связку команд РАЗНЫХ ПРОЦЕССОВ сильно помогла бы, но это нарушает идею временнОго разделения ресурсов...
Некоторое время назад укупил ШНУРКИ для обуви точно на этом принципе… кажется, потерял (или подарил кому-то) !..
А "предел Ландауэра" ?
На сайте в переписке с (ещё живым одним из Братьев) им был задан вопрос о смысле понятия ХРАМ в ГО. Ответ — сумма всего накопленного Человечеством для улучшения жизни в области гуманизма, технологий etc etc (собственно, Изя так и говорит — но чуть метафорично)…
Я использовал ссылки на удачные места и цитаты АБС для "разрядки" ситуации при чтении текста (чтобы не становилось "мучительно больно" — и скучно — читать). Такое бывает при любом качестве публикации и время от времени требуется РАЗРядКА… Нпример, здесь: https://habr.com/ru/post/540122/… упоминание о тов. проф. Выбегалло и старикашке Эдельвейсе! Уверен, что такой приём полезно использовать всем..!
В МАЛЫШЕ (формально написанном для отчёта за полученный гонорар) есть удивительная фраза (ответ на вопрос, зачем Аборигены спасли Малыша — разговор Комова с Горбовским) — "… если цивилизация достаточно стара, гуманизм ее мог превратиться в безусловный социальный рефлекс, в социальный инстинкт. Ребенок был спасен просто потому, что в такой акции испытывалась потребность...". Удивительно сказано..!
Хороша последняя фраза ГЛ — "Не забыть бы мне ВЕРНУТЬСЯ"..!
MPI нужна была для обеспечения практики работы со студентами на кластере. Получилось неплохо — были разобраны несколько стратегий использования MPI (от фактически ILP до нормальной ленточной процедуры умножения матриц — один из плакатов презентации здесь: https://cloud.mail.ru/public/YfR4/TLkgFn7DY). Естественно, время выполнения каждой гранулы фиксируется по локальным часам ноды, вычитывается время передачи данных (кстати, первая часть исследования — определение латентности сети).
А насчёт красного пунктира разве нечётко в тексте сказано? Картинка примитивная, конечно, но как-то ведь проиллюстрировать нужно было…
Кстати, сейчас экспериментирую с "нижней" формой ЯПФ — очень интересно получается… Наверное, в марте подготовлю публикацию (решил "не более одной в месяц")!..
Извините, но в данном контексте "masssive" переводится как "мАссовый", а не "массИвный" (последнее связано с физикой). Несложно найти корректный перевод этого английского термина — будьте "тщательнЕе"...