LINUX.ORG.RU

[история узбека] Лисп крошит экономику

 


2

5

Поставили партнёрам первую железку, стоит в датацентре NASDAQ.

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

Самую сложную часть написали на лиспообразном самописанном компиляторе, реализующем часть Коммон Лиспа (CLOS нет, но макросы остались :) и транслирующем в vhdl. Верификацию делали лиспом же, визуализация графа по тактам отлично через graphviz идёт (вывод в dot интегрирован в компилятор). Ошибок логических почти не было, а всяких vhdl-специфичных проблем вообще не было. Ошибками динамической типизации только хаскеллисты пугают, в реальной жизни они практически никогда не встречаются.

Компилятор и обвязку писало два занятых и другими вещами человека, времени потратили достаточно мало. Лиспообразный язык получился простой, даже лох типа меня может чего-нибудь наклепать :) Декларативная часть для генерации интерфейса ещё какой-то тайный смысл в себе несёт, а сама логика - ну чистый Коммон Лисп.

Я считаю, это реальный успех кластеров метапарадигм!

★★★★★

Ответ на: комментарий от anonymous

Как же иначе, лисп ведь? Скандалы, интриги, расследования.

mv ★★★★★
() автор топика

поздравляю :)

shty ★★★★★
()

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

Kuka ★★
()
Ответ на: комментарий от Kuka

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

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

mv ★★★★★
() автор топика
Ответ на: комментарий от registrant

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

mv ★★★★★
() автор топика
Ответ на: комментарий от mv

...причем если о таком левше, изваявшем шедевр каменным зубилом в XXI веке, рассказать современным мастерам, то реакцией будет улыбка, пожимание плечами и недоуменное «вот чудак...»

Kuka ★★
()
Ответ на: комментарий от mv

> Так два человека всего делали. Ну даже один, если совсем честно.

Кстати, а с чего ты взял, что это успех лиспа? Если бы работал один квалифицированный Scala-разработчик, вдруг получилось бы еще быстрее - откуда ты знаешь?

Kuka ★★
()
Ответ на: комментарий от Kuka

Кстати, а с чего ты взял, что это успех лиспа? Если бы работал один квалифицированный Scala-разработчик, вдруг получилось бы еще быстрее - откуда ты знаешь?

Конечно, это успех не столько лиспа, сколько человека. Но, тем не менее, лисп тут не на последнем месте. Впрочем, теперь можно приводить любимый аргумент скобкофобов: если Скала (whatever else) такая крутая, где написанный на ней браузер кернель 3D-игрушки лоу-лейтенси трейдинг?

mv ★★★★★
() автор топика
Ответ на: комментарий от mv

> где написанный на ней браузер кернель 3D-игрушки лоу-лейтенси трейдинг?

Может, Scala-программисты заняты на более интересной и высокооплачиваемой работе? ;)

Kuka ★★
()
Ответ на: комментарий от registrant

а как оценивается эффективность компилятора?

Как оценить эффективность языка в graphviz'е в плане генерации графов? Позволяет описывать - хорошо! Позволяет дело это легко - ещё лучше!

mv ★★★★★
() автор топика
Ответ на: комментарий от Kuka

Может, Scala-программисты заняты на более интересной и высокооплачиваемой работе? ;)

Может, Scala-программисты просто глупее? ;)

mv ★★★★★
() автор топика
Ответ на: комментарий от mv

> Может, Scala-программисты просто глупее? ;)

И от этого у них работа поинтереснее, и зарплаты повыше? Дайте мне пару таблеточек такого оглупина...

Kuka ★★
()
Ответ на: комментарий от Kuka

И от этого у них работа поинтереснее, и зарплаты повыше? Дайте мне пару таблеточек такого оглупина...

Я удивлён твоими дедуктивными способностями, в особенности, пассажем, из которого выведены данные об уровне зараплаты и критерии интересности работы!

mv ★★★★★
() автор топика
Ответ на: комментарий от mv

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

registrant ★★★★★
()

Вот это круто, поздравляю

yoghurt ★★★★★
()
Ответ на: комментарий от mv

> критерии интересности работы!

Ну, а я и не претендую на особую объективность. Лично для меня перемалывать инфу от биржевых спекулянтов - не самая интересная задача. Я бы выбрал что-нибудь более полезное для человечества. Да и чтобы мозги применить можно было по-настоящему.

Kuka ★★
()
Ответ на: комментарий от registrant

Синтезируемая часть vhdl - это, грубо говоря, описание проводов. Или провода ложатся в заданные объёмы и тайминги, или не ложатся.

mv ★★★★★
() автор топика
Ответ на: комментарий от Kuka

Ну, а я и не претендую на особую объективность. Лично для меня перемалывать инфу от биржевых спекулянтов - не самая интересная задача. Я бы выбрал что-нибудь более полезное для человечества. Да и чтобы мозги применить можно было по-настоящему.

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

По зарплате я лично не прогадал по сравнению с бывшим местом работы ;) Не говоря уж про интерес.

mv ★★★★★
() автор топика
Ответ на: комментарий от registrant

или графы строятся у учетом реальных физических задержек (а не условных тактов)?

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

mv ★★★★★
() автор топика
Ответ на: комментарий от mv

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

registrant ★★★★★
()
Ответ на: комментарий от registrant

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

У нас нет такого контроля над синтезом (инструмент не позволяет).

mv ★★★★★
() автор топика
Ответ на: комментарий от mv

да знаю я, не надо ликбеза. мне интересно именно в части про лисп, что он привносит нового. ведь те же vhdl-2008 и systemverilog вполне себе высокоуровневые

registrant ★★★★★
()
Ответ на: комментарий от mv

«не уложились в заданный объем/тайминги»

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

mv ★★★★★
() автор топика
Ответ на: комментарий от mv

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

ты сказал «либо ложится, либо не ложится». а где третий вариант: «что сделать/изменить, чтобы улеглось»

registrant ★★★★★
()

Поставили партнёрам первую железку, стоит в датацентре NASDAQ.

У вас ее уже купили что ли?

o
()
Ответ на: комментарий от registrant

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

registrant ★★★★★
()
Ответ на: комментарий от registrant

ты сказал «либо ложится, либо не ложится». а где третий вариант: «что сделать/изменить, чтобы улеглось»

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

mv ★★★★★
() автор топика
Ответ на: комментарий от o

У вас ее уже купили что ли?

Практически.

mv ★★★★★
() автор топика
Ответ на: комментарий от mv

> и вообще там, где требуется очень быстрая массивная параллельная обработка данных.

да теперь только нанимать инженеров и захватывать своими железками [зачеркнуто]мир отрасль...

psv1967 ★★★★★
()

А чем любой другой язык, позволяющий работать с текстом и структурами в памяти будет хуже? Какая разница, на чем будет написан транслятор DSL -> VHDL? Я бы понял если бы это был интерпретатор с JIT для того же DSL — невыпиливаемый компилятор сопровождает программу во время ее работы, грех им не воспользоваться.

anonymous
()
Ответ на: комментарий от anonymous

А чем любой другой язык, позволяющий работать с текстом и структурами в памяти будет хуже?

Говорят, что Лисп сделать проще всего.

pathfinder ★★★★
()

Поздравляю.

Что-нибудь в опен-сорс попадет?
Если не секрет, собираетесь выпускать «DSL->VHDL продукты» и для других отраслях промышленности?

Sosiska
()
Ответ на: комментарий от registrant

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

Насколько я понял у них алгоритм автоматически преобразовывается в логическую схему, а значит есть возможность ограничить компилятор в vhdl, заставив его использовать только конструкции с глубиной логики не более, например, 1. Также можно ограничить количество входов на которые может работать выход. Применение подобных мер, как правило, позволяет осуществить беспроблемный синтез и трассировку FPGA с очень жесткими констрейнтами (вплоть до максимальной частоты в спецификации FPGA, в частности у меня получалось выжать с таким подходом из Xilinx Spartan-3E 300МГц). Правда заполнение кристалла не должно быть полным, как правило, при 50% заполнении особых проблем с трассировкой не наблюдается.

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

anonymous
()

С нетерпением буду ждать более полного описания на планете.

dave ★★★★★
()
Ответ на: комментарий от anonymous

> ГоворЯт, что проще-легче-лучше-хуже-тяжелее удел гуманитариев

А суровые челябинские программисты не обращают на такие мелочи внимания?

archimag ★★★
()
Ответ на: комментарий от archimag

Понятно, значит DSL у них без синтаксиса, тупо списки как в лиспе.

А вот если бы их DSL не выглядел как говно, был понятен обычным финансовым деятелям. Если бы сделали для людей, а не для специально нанятого программиста на списках mv, на каком языке было бы легче реализовать?

anonymous
()
Ответ на: комментарий от anonymous

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

все-таки лучше, чтобы это настраивалось для конкретных цепей. но сама идея красивая, да

registrant ★★★★★
()
Ответ на: комментарий от archimag

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

anonymous
()
Ответ на: комментарий от anonymous

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

Академический склад ума - это ещё хуже, чем гуманитарный.

pathfinder ★★★★
()
Ответ на: комментарий от anonymous

ты промахнулся с адресатом, мол. чел.

anonymous
()
Ответ на: комментарий от anonymous

> Речь о том, наивный чукотский мальчик, что вести техническую

беседую, используя сравнительные прилагательные, моветон.


Да вы что такое говорите? Т.е. утверждение, скажем, что «плотность воды меньше, чем плотность железа» в технической беседе моветон? Лучше вместо ЛОР-а чаще посещайте уроки, а то так и останетесь недоумком.

archimag ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.