LINUX.ORG.RU

Поделитесь кодом на си, или крестах

 , ,


0

4

Всем привет, нужен достаточно большой и нетривиальный проект с высокой нагрузкой на CPU. Например, какая-нибудь научная хрень. Нужно это для тестирования оптимизации в компиляторе. У себя на кафедре взять не могу по простой причине: у нас всё на фортране, а нужно c, либо c++. Может у кого-то что-то такое есть?

☆☆☆☆☆

майнер какой-нибудь криптовалюты

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

Возможно какой-нибудь лютый говнокод способный выжрать все ресурсы CPU =D

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

Много непредсказуемых переходов, например. Обилие разных функций различной степени тяжести в плане CPU.

DELIRIUM ☆☆☆☆☆
() автор топика
Последнее исправление: DELIRIUM (всего исправлений: 1)

Может быть что-то с бигдатой связаное? Они когда начинали - то считали все на CPU и вполне себе неплохо его загружали

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

А не, мой говнокод тогда не подойдёт, там практически SIMD с перспективой перенести всё на GPU...

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

Спасибо, посмотрю. Ещё появилась идея собрать сам clang clang'ом с оптимизацией и без и заставить его собирать clang=) we need to go deeper!

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

Ну зависит от характера оптимизаций которые вы тестируете. Шланг - это АЛУ, а пифия и Ко - это много математики с плавающей точкой.

morse ★★★★★
()

исходники firefox

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

Сам llvm да, уже поставил собираться. А openssl же нагрузить чем-то надо, просто зашифровать файл- это быстро и неинтересно.

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

openssl speed

встроенный бенчмарк

но там зависит, как openssl был собран, с использованием ассемблера или без

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

Файл в принципе неинтересно ибо проц будет курить на фоне i/o, надо память шифровать.

Ещё, можно посмотреть в сторону всяких virgl и прочих софтверных рендереров.

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

Хотя на фоне памяти тоже будет курить, чего уж там...

pon4ik ★★★★★
()

Не забудь сравнить с результатами pgo (главное не попортить сиё ибо многие товарищи будут ругаться если вещь общего назначения).

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

Вендоры баз данных открытых сиё использут в избытке.

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

Раз занимаешься pgo,то надо искать проект который уже использует эту технику, или имеет развитую систему интеграционных и нагрузочных тестов, просто поделка грузящая процессор не пойдёт видимо.

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

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

pon4ik ★★★★★
()

Что за компилятор, что за оптимизация? Такие вещи тестируются на наборе тестов, причём нужно знать где оптимизация вообще должна применяться. По-хорошему следует выбить с кафедры покупку SPEC CPU. Если не дают денег - можно копнуть в сторону:

  • LLVM, Chromium - задачи, которые тяжело собрать
  • bzip, 7zip и т.д. - целочисленные задачи, архивирование
  • ffmpeg - целочисленные тяжёлые вычисления
  • blender - плавающие тяжёлые вычисления
  • phoronix - просто набор тестов с кучей всякой лабуды
  • Postgres - тоже целочисленная задача, БД

Можно попробовать таки прикрутить фортран чем-то вроде flang (не пробовал).

alexanius ★★
()

Насколько большой? у меня есть MD based код для публикации, там пара тысяч строк будет.

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

У меня давно идея полной канадской сборки крутится, только руки не доходят. Хотел собрать набор кросс-компиляторов для арма - чтобы они собирали под x86_64/x86:linux/windows:shared/static.

Например, какая-нибудь научная хрень.

Не обязательно. У меня как-то года 2 назад clang умер во время сборки игры Жизнь Конуэя, написанной по большей части на boost::tuple+variadics. Оно жрет очень много памяти и мб тогда случился недостаток свободной памяти. Имхо, тебе нужно тоже что-то подобное кортежам на пользовательских типах без характеристик, где замешаны были бы еще голые указатели.

Ну или просто собрать clang clang-ом с флагами -fsanitize=thread, -fsanitize=memory, а потом этим компилером собрать снова clang. Правда тормоза будут жутчайшими.

aido ★★
()

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

Компилятор

vertexua ★★★★★
()

Однозначно хромог.

Можешь Unreal Engine 4 собрать из сорцов.

a1batross ★★★★★
()

Много непредсказуемых переходов

glibc

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

anonymous
()

Предлагаю raytracer какой-либо с github взять и погонять. Я как-то с флагами компиляции игрался как раз на программе, рисующей 3D сцену трассировкой лучей.

quiet_readonly ★★★★
()

Я когда недавно ставил себе gcc на мак с примочками из open-mpi, а там собирается из исходников, то хорошо так нагрузило процессор. То есть, можно просто собирать компилятор, как тут выше советовали.

А так, можно взять имитационное моделирование и посмотреть в сторону OMNeT++, попробовав оттуда задачки, но сразу предупреждаю, что там лицензия неопенсорсная

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

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

dave ★★★★★
()
std::vector<std::thread> tds(std::thread::hardware_concurency());
for(auto& t:tds) {
    t = std::thread([](){
        unsigned x = 0;
        while(true) {
           x++;
        }
    });
}
for(auto& t:tds)
    t.join();

Загрузит все ядра на 100%, что еще надо?

CatsCantFly
()
Последнее исправление: CatsCantFly (всего исправлений: 2)

Научно -техническая элита России не может написать программу на C++? Знаний не хватает?

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

Именно так.

Хорошо, задам вопрос по другому. Почему кафедра не переходит на промышленные языки типа C#, C++, Java, Python. Чем вас удерживает Фортран?

Чисто человеческий фактор?

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

Я сейчас перевожу новый код на R. Но старые профессора пишут и будут писать на фортране и нового ничего учить не хотят. Мой научник относительно молодой и готов перейти на R (а ещё он любит perl и Си, но не кресты).

DELIRIUM ☆☆☆☆☆
() автор топика

emerge dev-qt/qtwebkit sys-devel/llvm www-client/firefoxapp-office/libreoffice

emerge -e world

anonymous
()

есть кейлогер, подменяющий в буфере обмена биткоин адрес на другой ;-)

le_legioner ★★
()

Возьми исходники llvm и собери им потом попенофис под какой не-х86 бэк. Переходов будет дальше некуда, там проходы до посинения пилить можно

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

а ещё он любит perl и Си, но не кресты

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

Не знаю какая ОС у вас на кафедре, но на Unix-like системах сишка переживёт всех лоровцев вместе взятых : ) 2011 году обновили стандарт этого языка. Сейчас малочисленные адепты Rust -та лютуют, незнаю конкуренты-ли они сишникам. К расту так сбоку присматривался, Мозилла наваяла хорошо продуманное ЯП. Может я ошибаюсь, но мне кажется что сишка придумывалась сходу в боевых условиях.

Кресты, хм..? если подумать... может и правильно, что не любит. Основательное изучение современного варианта этого монстра займёт полжизни. Старого «Си с классами» давно уже нет. Да и многие кто писал на C++ перешли на Java.

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