OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 23:30

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 104 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Четверг, 24 Сентябрь, 2015 17:51 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Соглашусь с тем, что личная встреча важна.
Но. Нам шашечки или ехать?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Четверг, 24 Сентябрь, 2015 19:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
prospero78 писал(а):
Нам шашечки или ехать?)
Bandwidth -- это как раз не про шашечки, а про ехать.

Но одно другому ведь не мешает, а, скорее, дополняет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 07:31 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
СУПЕР!!!
Рифат сабирзянов отметил важные направления развития.
1. Насчет отладчика я с ним не согласен.
Мы в acodemice-semantike сделали не отладчик, а визуализатор.
Именно для показа выполнения алгоритма.
Только демонстрация - для лучшего понимания.
2. Параллельность - важная вещь.
Я последние 2 года интересовался этими вопросами в связи с программированием задач перколяции.
Есть много решений.
OpenMP включать практически обязательно.
Очень хорошо сделано сейчас в стандартной библиотеке С++11.
Там много средств РАЗНОГО уровня. Например треды - это средства НИЗКОГО уровня.
Рекомендую обратить внимание.

Есть МГУшная серия книжке о программировании на суперкомпьютерах.
Там много книжек про параллельность.


Кроме того, надо ж сам компилятор параллелить.
Как сделано в Студии - параллельная компиляция.
Естественно и в БлэкБоксе это сделать, ибо многоядерность уже есть везде.

3. Дракон надо добавлять в БлэкБокс.

ИМХО, надо с параллельности начинать - практически важная весчь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 09:10 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 470
Откуда: Москва
Валерий Лаптев писал(а):
СУПЕР!!!
Рифат сабирзянов отметил важные направления развития.
...............
Мы в acаdemice-semantike сделали не отладчик, а визуализатор.
Именно для показа выполнения алгоритма.
Только демонстрация - для лучшего понимания.
Поддерживаю. Визуализатор для показа выполнения алгоритма — это волшебные очки. Невидимое становится видимым.

Сегодня алгоритмы ходят в шапке-невидимке.
Пора снять шапку-невидимку.
Валерий Лаптев писал(а):
3. Дракон надо добавлять в БлэкБокс.
Поддерживаю


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 11:34 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Валерий Лаптев писал(а):
2. Параллельность - важная вещь.
OpenMP включать практически обязательно.
Есть МГУшная серия книжке о программировании на суперкомпьютерах.
Там много книжек про параллельность.


Ну так в прошлом году Иван Денисов делал доклад про использование ББ на кластере, на основе MPI.

Цитата:
Кроме того, надо ж сам компилятор параллелить.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 11:37 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Валерий Лаптев писал(а):
1. Насчет отладчика я с ним не согласен.
Мы в acodemice-semantike сделали не отладчик, а визуализатор.
Именно для показа выполнения алгоритма.
Только демонстрация - для лучшего понимания.


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 12:17 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Илья Ермаков писал(а):
Валерий Лаптев писал(а):
2. Параллельность - важная вещь.
OpenMP включать практически обязательно.
Есть МГУшная серия книжке о программировании на суперкомпьютерах.
Там много книжек про параллельность.

Ну так в прошлом году Иван Денисов делал доклад про использование ББ на кластере, на основе MPI.

Да, если кому-то эта тема интересна с MPI, то я могу выложить проект. Я хотел перед выкладыванием его как следует протестировать, но в этом году были другие задачи. Тем не менее привязка к самой популярной реализации MPI, которая называется MPICH, у меня сделана и работает. Было бы замечательно скрестить мою реализацию с Files в оперативной памяти, про которую Илья рассказывал. Илья, а можете подсистемой Files в RAM поделиться?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 13:30 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Могу. Записал в планировщик :)
Там просто один модуль.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 15:27 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Илья Ермаков писал(а):
Ну так в прошлом году Иван Денисов делал доклад про использование ББ на кластере, на основе MPI.

Посмотрю, спасибо.
Но я имел ввиду в библиотеку ББ включить модули, позволяющие писать параллельные проги.
Цитата:
А какая практическая цель, если компиляция быстра и так? Тем более при переходе к семантическому редактору.
Бессмысленное усложнение будет. Ведь в A2 был параллельный компилятор, потом нарвались на глюки, оказался слишком сложен для исправления - переписали последовательно.

Ну, наверное да. Я просто от студии экстаполирую.
Даже относительно небольшие наши проекты Семантик и Акодемика без параллельной компиляции собирались бы гораздо дольше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 20:47 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Валерий Лаптев писал(а):
Кроме того, надо ж сам компилятор параллелить.
Как сделано в Студии - параллельная компиляция.
Поделюсь опытом.
У меня на работе восьмиядерный комп и Студия. Солюшен из 100 проектов, суммарно под 850 тыс. строк. Экспериментировал: делал ребилд солюшена с разным уровнем параллелизма компиляции (опция maximum number of parallel project builds) и замерял время.
С существенным отрывом победило значение "1". То есть, последовательная компиляция без всякого параллелизма.

Потому, что bottleneck в жёстком диске.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Воскресенье, 27 Сентябрь, 2015 23:18 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Илья Ермаков писал(а):
Бессмысленное усложнение будет. Ведь в A2 был параллельный компилятор, потом нарвались на глюки, оказался слишком сложен для исправления - переписали последовательно.

Мы используем старый добрый PACO и никаких проблем не испытываем.
Как я понимаю, Разработчики же поменяли его на инфраструктуру FOX совсем не потому что он сильно сложный, а потому, что разбираться, править баги некому и некогда, - правя баги очередную диссертацию об не напишешь, нужность свою не покажешь. PACO, как и компилятор КП из ББ основан на OP2, который написан через одно место и чтобы в нем разобраться нужно потратить время, и постоянно всё это держать либо в уме, либо печатать много листов всяких разных таблиц, и плотно в этом сидеть, а чтобы что-то поменять, нужно опять приложить некие силы, а лучше вообще переписать. Чтобы не выполнять эту бессмысленную, неблагодарную работу, накатали новую инфраструктуру, получили преференции, профит и кучу ништяков.
Да, в нативном варианте А2 на древних машинах при компиляции часто возникали проблемы, трапы всякие, потому как поток, за отведенное ему время не успевал выполнить задачу, и ждущий результатов другой поток трапался ну и т.п. (тут таки да, зачем многопоточный компилятор на одноядерном проце??? так какое поле для диссертаций и преференций!)И как бэ на таких же древних машинах, но под WinAos таких проблем практически не было. И где искать проблему? А вдруг найдешь? Что потом делать-то ))
В частности и тормозная родная файловая система тут тоже потопталась и баги в ядре. Баги компилятора, конечно вносили свои пять копеек. Но, как я уже говорил, у нас-то проблем с многопоточной компиляцией нет, но у нас и железо и ядро, по-сути, уже другое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Понедельник, 28 Сентябрь, 2015 17:01 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
По поводу распараллеливания компилятора есть разные подходы, кто-то под этим термином может подразумевать параллельную компиляцию нескольких модулей, а можно подразумевать параллельную работу модулей компилятора.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Понедельник, 28 Сентябрь, 2015 17:39 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Коллеги, пож., напомните, какую конкретную проблему должен решать "параллельный" компилятор.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Понедельник, 28 Сентябрь, 2015 18:18 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Распараллеливание компилятора должно представить пример того, как распараллеливать последовательные процессы и за счет этого ускорять процесс.
Конечно, Вы правы, время компиляции не является узким местом у Оберонов и уменьшение времени компиляции, например, с двух секунд до одной секунды не каждый заметит, но бывают и более длительные процессы, которые можно значительно ускорить за счет использования нескольких ядер компьютера.
Если допустим, была какая то программа, которая расчитывала 3D модель сферического коня в вакууме за 24 часа, а после распараллеливания на 4 ядра компьютера, удалось сократить это время до 6 часов, то это было бы значительным достижением.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Понедельник, 28 Сентябрь, 2015 22:07 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Rifat писал(а):
Конечно, Вы правы, время компиляции не является узким местом у Оберонов и уменьшение времени компиляции, например, с двух секунд до одной секунды не каждый заметит, но бывают и более длительные процессы, которые можно значительно ускорить за счет использования нескольких ядер компьютера.
Если допустим, была какая то программа, которая расчитывала 3D модель сферического коня в вакууме за 24 часа, а после распараллеливания на 4 ядра компьютера, удалось сократить это время до 6 часов, то это было бы значительным достижением.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Понедельник, 28 Сентябрь, 2015 23:23 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Rifat писал(а):
По поводу распараллеливания компилятора есть разные подходы, кто-то под этим термином может подразумевать параллельную компиляцию нескольких модулей, а можно подразумевать параллельную работу модулей компилятора.
Компилятор - это же не сложная фабрика с производственными мощностями. Буферизация чтения файла делается на уровне операционной системы, а дальше там и параллелить нечего. Разве что вероятностную оптимизацию какую-нибудь замутить.

Коллеги, или я не прав?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Вторник, 29 Сентябрь, 2015 00:15 

Зарегистрирован: Воскресенье, 03 Февраль, 2008 12:50
Сообщения: 249
Александр Ильин писал(а):
Rifat писал(а):
По поводу распараллеливания компилятора есть разные подходы, кто-то под этим термином может подразумевать параллельную компиляцию нескольких модулей, а можно подразумевать параллельную работу модулей компилятора.
Компилятор - это же не сложная фабрика с производственными мощностями. Буферизация чтения файла делается на уровне операционной системы, а дальше там и параллелить нечего.

Ну, это ведь от объёма кода зависит. Понятно, что если есть десяток модулей, то параллелить действительно особо нечего, но на больших объёмах кода будет существенный выигрыш от параллельной компиляции нескольких (независимых) модулей. Возьмите для примера что-то величиной хотя бы с Qt и соберите с make и make -jX (где X обычно выбирают примерно равным числу ядер) и увидите, что смысл есть. Только тут ведь совсем не компилятор параллельный, а система сборки.

По сути предложения присоединяюсь к вопросу Info21: не очень понятно, какую конкретную задачу решит параллельный компилятор даже в вышеописанном варианте с суть последовательным компилятором, но параллельной системой сборки. У кого-то есть такие объёмы кода на КП, что можно ожидать сколь-нибудь существенного выигрыша или просто что-бы было? Если второе, то... Ну не знаю, с моей колокольни, мягко скажем, не самая нужная вещь. Есть и поважнее...

И по поводу предложения Валерия Лаптева добавить возможность писать "параллельные проги", я поднимаю тот же самый вопрос, что Info21 задал по поводу параллельного компилятора: зачем? Те, кому нужен параллелизм ("числодробильщики" всякие, по большей части) пишут на Fortran/С++. Так вот, подвинуть эту парочку - это из области фантастики. Как там было у Чарльз "нашего" Хоара/Хоора?
Цитата:
I don't know what the language of the year 2000 will look like, but I know it will be called Fortran.

Не проще изучить Fortran, чем мечтать о параллельности в Oberon? Там не так уж всё плохо. Есть, конечно, вещи от которых прям смердит, но обратная совместимости, чтоб её... :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Вторник, 29 Сентябрь, 2015 06:26 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Если кому-то нужен реально такой компилятор, то его не проблема сейчас сделать доступными средствами, даже есть выбор: либо напрямую через сообщения по TCP между параллельно запущенными ББ, либо через библиотеку MPICH, которая сама параллельно запустит несколько ББ. Однако наличие технической возможности, не отменяет более сложную алгоритмическую задачу определять какие модули надо куда на компиляцию передать, чтобы были все зависимости разрешены в каждом из процессов :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Вторник, 29 Сентябрь, 2015 10:13 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Роман М. писал(а):
Таким образом нужно работать не над улучшением скорости работы компилятора, а над предоставлением возможностей программисту для параллельных вычислений. Вопрос тогда состоит в том, можно ли обойтись при этом библиотечными средствами или же надо изменять язык?
Если библиотечными средствами, то хотя бы чтобы не надо было самим писать обёртки над сишными библиотеками.

1. Можно распаралелить в компиляторе трансляцию модулей по ядрам - пожалуй и хватит.
2. Менять язык не нужно. Даже в С++ этого делать не стали. Надо просто средства параллельного программирования реализовать в библиотеке.
а) OpenMP - она практически везде работает.
б) явные средства.
Мне очень нравится, что сделано в стандартной библиотеке С++ сейчас - немного познакомился.
Треды - это НИЗКОУРОВНЕВЫЕ средства, хотя я ими сейчас пользуюсь в реализации моделирования перколяции.
Есть книжка Уильямса: http://www.ozon.ru/context/detail/id/26893657/
В ней все просто классно расписано.
Ну, и книжка Джосатиса: http://www.ozon.ru/context/detail/id/27978215/

Мне видится, что надо реализовать две вещи:
а) стандарт POSIX
b) высокоуровневую надстройку


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: День Оберона в Москве (2015)
СообщениеДобавлено: Вторник, 29 Сентябрь, 2015 10:46 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Время, которое мы потратим на выяснение зависимостей и выделение компиляторо-параллелизуемых цепочек модулей, мы бы могли потратить на компиляцию в один поток.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 104 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB