Re[12]: За счет чего выстреливают языки?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 17.07.15 08:01
Оценка:
Здравствуйте, Mazay, Вы писали:

M>>>Даже на наивном умножении матриц. Это как надо накосячить в компиляторе, чтобы получить просадку на такой элементарной вещи?

M>Статистическая погрешность бывает в обе стороны, а если отклонение всегда в одну сторону — это уже закономерность.
M>Потому я и написал про matmul. Зачем ты на dict перепрыгнул? Вот код для matmul:
M>Тут всё даже без интринсиков. Почему Ди здесь проваливается?

Охота вам обсуждать материалы 2011 года?
Вот я только что взял этот самый matmul и позапускал на Core i3 под виндой на матрице 1000х1000. Результаты, в секундах:
msvc_10        1.36
LDC_0.15.1     1.37
Clang_3.5.0    1.38
Intel_13       1.38


Завязывайте уже.
Re[12]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 08:13
Оценка:
Здравствуйте, Mazay, Вы писали:


M>Тут всё даже без интринсиков. Почему Ди здесь проваливается?


Скорее всего две причины, контроль границы массивов (можно отключить в командной строке)
и выделение памяти, тут можно все сделать как в си, но запаковать потом результат в
удобный шаблон.
Re[15]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 08:19
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Ок, если цепляться к такой ерунде... Какой-нибудь древний std::pointer_to_unary_function — это первоклассная сущность или нет? )


Нет, не универсально и там голову можно было сломать с этими stl биндами даже для простейших вариантов.
Более-менее что-то похожее на ФВП (а без них ни о каком ФП речи нет) появилось с boost::function, boost::bind
и лямбдой из того же буста.
Re[6]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 08:43
Оценка:
Здравствуйте, Mazay, Вы писали:

M>Я могут сказать почему на Раст и Ди не переходят толпы HPC-шников. Потому что они генерят медленный код. Чтобы вынести из этой области С++ нужно отставание в производительности по любому тесту считать серьёзным багом. Так что это пока просто прототипы, а не законченные решения. Так что нельзя ожидать именно толп, переходящих на них. Но интерес к ним гораздо выше, чем к Немерлу. По крайней мере народ сподобился написать на них тесты для шутаута.


В эпоху D1 на шутауте была куча тестов для D по нескольку вариантов, часто занимали верхние строчки,
и вообще агрессивно обновлялись, потом похоже что-то не поделили с хозяином ресурса и все исчезло.
Re: За счет чего выстреливают языки?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 17.07.15 08:59
Оценка:
Здравствуйте, Mamut, Вы писали:

Обрати внимание какие языки самые популярные в России
Топ 10 языков программирования в России

Как думаешь какой на первом месте?
и солнце б утром не вставало, когда бы не было меня
Re[20]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 09:03
Оценка: 9 (1) :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:


EP>Давайте, мне нужна альтернатива C++ превосходящая его по возможностям и как минимум не уступающая по скорости, готов развивать такой язык (либо его библиотеки) если оба эти принципа будут заложены в самую основу.

EP>Думаю получить такую же скорость, при этом не тратя кучу времени, можно путём компиляции нового языка в C++ (например Facebook компилировал одно время PHP в C++) — время компиляции меня совершенно не пугает.

Сейчас активно начал раскручиваться еще один язык на букву N, но не немерле, кстати тоже не совсем
чтобы молодой, почти всем хотелкам твоим удовлетворяет, очень мощное мета программирование, шаблоны
по сути разновидность макросов и по моему мощнее (в смысле читабельности и простоты а не по тьюрингу)
чем D'ишные или тем более С++'ные, плюс полноценные макросы, который уступают только немерлевским,
нет изменения синтаксиса, но есть полноценная работа с AST и цитирование (правда его почему-то
авторы языка недолюбливают).
Да компилируется в C, C++, JavaScript, притом итоговая скорость компиляции очень высокая, не уступает
по моему D'шной, так-как сгенерированный код весьма тупой и линейный.
В общем тебе сюда http://nim-lang.org/
Re[17]: За счет чего выстреливают языки?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 17.07.15 09:04
Оценка:
Здравствуйте, VladD2, Вы писали:

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

Если внимательно посмотреть на код математических и около библиотек, то будет видно, что асма в виде интрисиков там полно.

VD>При этом оптимизация кода на асме не является чем-то сверходинарным, в отличии от умения очень хорошо играть в шахматы.

Не уверен, ох как не уверен.
Re[2]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 09:07
Оценка: +1
Здравствуйте, Serginio1, Вы писали:


S>Как думаешь какой на первом месте?


У них там на третьем месте еще интересней
Re[3]: За счет чего выстреливают языки?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 17.07.15 09:37
Оценка: :)
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, Serginio1, Вы писали:



S>>Как думаешь какой на первом месте?


FR>У них там на третьем месте еще интересней

Ну это такие работодатели

то, что работодатели требуют от соискателей

И обрати внимание на рост зарплат
и солнце б утром не вставало, когда бы не было меня
Отредактировано 17.07.2015 9:41 Serginio1 . Предыдущая версия .
Re[13]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 09:40
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:


EP>Лямбды/замыкания не являются определяющей характеристикой ФП. Есть ФЯ без лямбд — Unlambda, а также есть старый язык с замыканиями — Smalltalk — который совершенно не ФЯ.


Unlambda же карринг в полный рост, в том же ML семействе тоже без лямбд можно спокойно
писать, карринг и первоклассность рулит, будет только чуть менее выразительно.
Re[21]: За счет чего выстреливают языки?
От: BulatZiganshin  
Дата: 17.07.15 09:47
Оценка:
Здравствуйте, FR, Вы писали:

FR>Сейчас активно начал раскручиваться еще один язык на букву N, но не немерле, кстати тоже не совсем


я его год назад пробовал когда в ddj была статья. первое с чем я столкнулся — код, сгенерённый им для цикла (а у него проме. трансляция в С), был чем-то типа while. логически-то он был эквивалентен сишному for, но при этом сишный компилятор, натасканный на вполне опредённые паттерны, генерировал для него худший код. вот и вся эквивалентность С по скорости

а второе с чем я столкнулся — некокрректная компиляция какого-то кода всего в десяток строчек. в общем, one man show и пока не будет большего — никакого промышленного применения у него не будет
Люди, я люблю вас! Будьте бдительны!!!
Re[22]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 10:02
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:


FR>>Сейчас активно начал раскручиваться еще один язык на букву N, но не немерле, кстати тоже не совсем


BZ>я его год назад пробовал когда в ddj была статья. первое с чем я столкнулся — код, сгенерённый им для цикла (а у него проме. трансляция в С), был чем-то типа while. логически-то он был эквивалентен сишному for, но при этом сишный компилятор, натасканный на вполне опредённые паттерны, генерировал для него худший код. вот и вся эквивалентность С по скорости


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

BZ>а второе с чем я столкнулся — некокрректная компиляция какого-то кода всего в десяток строчек. в общем, one man show и пока не будет большего — никакого промышленного применения у него не будет


Ну язык сырой до версии 1.0 может быть в этом году и доползет, но сомнительно пока.
Мелких багов полно, но человек выше вроде как раз хотел развивать.
Re[23]: За счет чего выстреливают языки?
От: BulatZiganshin  
Дата: 17.07.15 11:02
Оценка:
Здравствуйте, FR, Вы писали:

FR>А пример есть воспроизводимый?


http://rghost.ru/8cDsycywt test3.nim и test3.c который тогдашний компилятор сгенерил
Люди, я люблю вас! Будьте бдительны!!!
Re[14]: За счет чего выстреливают языки?
От: Evgeny.Panasyuk Россия  
Дата: 17.07.15 11:11
Оценка:
Здравствуйте, FR, Вы писали:

EP>>Лямбды/замыкания не являются определяющей характеристикой ФП. Есть ФЯ без лямбд — Unlambda, а также есть старый язык с замыканиями — Smalltalk — который совершенно не ФЯ.

FR>Unlambda же карринг в полный рост,

Да, внутри реализаций комбинаторов, и что?

FR>в том же ML семействе тоже без лямбд можно спокойно

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

В том же Haskell'е в почёте point-free style.
Re[27]: Оффтопик
От: alex_public  
Дата: 17.07.15 11:20
Оценка:
Здравствуйте, WolfHound, Вы писали:

_>>Мда, подсветка синтаксиса ассемблера на rsdn'е очень "актуальная"... )))

WH>Исправь.
WH>https://github.com/rsdn/RsdnFormatter/blob/master/Format/CodeFormat/Patterns/Assembler.xml

Судя по истории система проходила "рефакторинг" 2010-ом году и при этом там нет 64-ёх битных регистров (rax и т.п.)? Ужас какой) Я ещё понял бы, если бы файл был родом из начала 2000-ых...
Re[24]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 11:26
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

FR>>А пример есть воспроизводимый?


BZ>http://rghost.ru/8cDsycywt test3.nim и test3.c который тогдашний компилятор сгенерил


Я имел в виду что есть ли пример на си и аналогичный пример на nim чтобы посмотреть
отстает ли и покопать почему.
А так он и сейчас примерно тоже самое и генерирует, но я не уверен что while будет
хуже for'а оптимизироваться.
Re[26]: За счет чего выстреливают языки?
От: alex_public  
Дата: 17.07.15 11:30
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

_>>Вот как раз такой тупой код в лоб gcc и генерирует:

BZ>ну извини, это называется смотришь в книгу — видишь фигу замени вот это
_>> vpmaskmovd -32(%rdx), %ymm2, %ymm0
_>> vpaddd %ymm0, %ymm1, %ymm1
BZ>на vpaddd -32(%rdx), %ymm1, %ymm1. и это убери
_>> vpandn %ymm3, %ymm2, %ymm2

Для таких очевидных правок не требуется даже в ассемблер лезть — достаточно убрать if из C++ кода. В итоге сгенерируется такое:
.L33:
    vmovdqu    (%r10,%rax), %ymm0
    vpaddd    (%r14,%rax), %ymm0, %ymm0
    addl    $1, %edx
    vpaddd    0(%r13,%rax), %ymm0, %ymm0
    vpaddd    (%r12,%rax), %ymm0, %ymm0
    vpaddd    0(%rbp,%rax), %ymm0, %ymm0
    vpaddd    (%rdi,%rax), %ymm0, %ymm0
    vpaddd    (%rsi,%rax), %ymm0, %ymm0
    vpaddd    (%rbx,%rax), %ymm0, %ymm0
    vpsrad    $3, %ymm0, %ymm0
    vmovdqu    %ymm0, (%r11,%rax)
    addq    $32, %rax
    cmpl    %edx, %ecx
    ja    .L33


Только вот оно будет всего лишь процентов на 10 быстрее, т.е. данная правка к нашей проблеме отношения не имеет.
Re[15]: За счет чего выстреливают языки?
От: FR  
Дата: 17.07.15 11:30
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

FR>>Unlambda же карринг в полный рост,


EP>Да, внутри реализаций комбинаторов, и что?


Ну если есть каринг и замыкания лямбда не больше чем сахар в общем-то.
Re[2]: За счет чего выстреливают языки?
От: alex_public  
Дата: 17.07.15 11:40
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Обрати внимание какие языки самые популярные в России

S>Топ 10 языков программирования в России
S>Как думаешь какой на первом месте?

Языки программирования linux и erp? ))) Хотя html и sql тоже хороши, но по сравнению с этими двумя даже сомнений не вызывают. )))
Re[3]: За счет чего выстреливают языки?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 17.07.15 12:15
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Serginio1, Вы писали:


S>>Обрати внимание какие языки самые популярные в России

S>>Топ 10 языков программирования в России
S>>Как думаешь какой на первом месте?

_>Языки программирования linux и erp? ))) Хотя html и sql тоже хороши, но по сравнению с этими двумя даже сомнений не вызывают. )))

Смех смехом, но можно проследить за требованиями работодателей
Программист должен знать то то и то то.
и солнце б утром не вставало, когда бы не было меня
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.