Есть идея организовать конкурс по программированию на Assembler'е! Азарта ради, но и, возможно, администрация предложит какие-то пряники победителям? Код предполагается под Windows (32 бита). Возможность адаптации под DOS тоже приветствуется. Варианты заданий: Самая быстрая функция сортировки массива с привязанными данными (т.е. у массива есть 2 поля: элемент сортировки (число) и указатель). Можно сделать 2 варианта: с ограничением на использование стека (чтобы слишком не увлекаться чистой "быстрой" сортировкой) и без оного. Самая быстрая функция вычисления рядов Тейлора через SSE2 (с возможностью задавать 4, 5, 6, 8, 10, 12 или 16 коэффициентов). Самая быстрая функция деления целых с использованием SSE2. Самый быстрый/компактный код генерации случайного/псевдослучайного числа размером с байт/слово/двойное слово (выполняющий определённые критерии распределения случайных чисел) под 386+ и под P6 с SSE2+. Самый "интересный" и "грамотный" код реализации захвата критической секции с учётом читающих/пишущих потоков и очередей (критерии оценки придумаем). Ваш вариант (предлагайте интересные задания!!!) Прога для теста скорости будет. Чужой код, как вы понимаете, использовать нельзя. Есть желающие поучаствовать? Пишите и не забывайте указать в каких заданиях вы согласны принять участие! p.s. Ну и отдельный вопрос администрации: какие пряники можно придумать для победителей?
Jin X, давайте ближе к теме. на кряклабе - это всегда крякмисы (с обсуждениями итд, что очень интересно читать). Здесь предлагаю что-то такого же плана. Например разработать эксплоит для софта (спецом написанного для конкурса)- на ропах например. Ну в общем что-то такого плана. Матанить на ссе - как-то не вкусно. Тогда уж крипта какая-нибудь (реализация на ссе алгоритма) и замеры на скорость. И чтобы решения выкладывались для обсужения, для прокачки скилов, а не обсера (как тут любят делать некоторые=)) На пряники побарабану. Ну это имхо. ПС давайте и 64 бита тоже. 32 - это уже не актуально. Спасибо.
superakira, крипт можно, тоже хороший вариант. Тот же AES даже – вариант с поддержкой AES-NI и без него. Главное, чтоб народ набрался, пока что-то не шибко активно Про крякинг – х/з, мне кажется, этот вариант как раз большое "для обсера", тем более форум не специализированный крякерский, а асмовый в целом. И хочется что-то полезное всё-таки. Можно ещё что-то придумать, не чисто математическое... Или даже оптимизировать что-нибудь, но не по скорости, а по размеру. Не особо актуально, зато интересно, ностальгически 64 бита – ок
p.s. Кстати, а про критические секции разве неинтересно? Именно RW, именно с очередями, рекурсией (естественно) и с защитой от DeadLock'ов. Можно с семафорами (многоместный то бишь). И т.д. И чтобы это работало быстро, не уходило в ядро без надобности и не грузило проц при долгом ожидании и большом числе потоков. Можно ещё попробовать сделать без блокировки шины (есть вроде какие-то алгоритмы, не знаю насколько надёжные только). Отличная практическая и полезная задача, ИМХО
Идея весьма позитивная) Но я вот не буду участвовать( Могу сказать неск. знакомым преподам - у них времени может не быть, можно сказать студентам - у них или опыта не будет или усердия( Мой вариант: Самая быстрая реализация вычисления хеш-функции * с использованием SSE2+/AVX. (*какая именно думать) По поводу поощрения, можно стандартной функциональностью создать и выдать трофей, который накинет репу получателю, см. пример: https://wasm.in/members/jin-x.9692/trophies Но в будущем возможно сделать более подвинутую систему ачивок.... например медали как яша говорит...
Jin X, > Именно RW, именно с очередями, рекурсией (естественно) и с защитой от DeadLock'ов. Это сложная задача и реализовано в виде RWL блокировок. Врядле кто то сможет реализвать ровно это с нуля, задача оверхед. По сабжу - никому не интерсен машкод, алгоритмы это актуально. Какое отношение имеет какие-то мат формулы к кодингу.
Я так понимаю, что это спортивное программирование и нужно быть математиком или с такой подготовкой, я в этом не силён, буду лучше обратно разрабатывать, вот, но готов предложить - расчёт чила ПИ или Экспоненты до определенного знака с замером скорости. Старожилы пришли, как Вы. А Вы чушь чушь))
yashechka, Вот как пример интересная задача, которая сейчас более чем актуальна https://yadi.sk/i/N0Hhx2vu3JLkzj
MD5, ИМХО, чего далеко ходить? Можно ещё сделать код для тестирования скорости. Чтоб был минимальный разброс между измерениями и чтоб можно было очень короткий код тестить (вплоть до 1 инструкции). Ой, да ладно, пожалуйста. Обычную RW-блокировку сделать – это оверхед? Даже с очередями. Ну может, манипуляции с разгрузкой проца без погружения в ядро – это задротство, ну или защита от DeadLock'ов (в это не углублялся, не знаю), а остальное вполне решаемо... Что это? В двух словах если, ломает переводить многобукаф Вообще, тема создана не чтоб навязать какие-то задания, а для обсуждения. Что вам было бы интересно попрогать? Предлагайте!!! Вообще, интересно бы найти какую-то тему, актуальную, но нормальных реализаций которой мало.
Jin X, > Обычную RW-блокировку сделать – это оверхед? Даже с очередями. Да, это весьма сложно. Покажите свою реализацию, затем вы сможите что то утверждать, а пока ваше мнение - ничто. Вот вам и конкурс - кому не будет стрёмно взяться за эту задачу Сейчас я подниму топик тоже с одной задачей, решайте. А какие то сортировки в досе - нафиг это кому нужно.
Откуда такая уверенность? Реализации пока нет, но я вполне представляю как это сделать ) Интерес есть, руки только не доходят... Ok, что было бы интересно ВАМ (всем) ???
Наколбасил бы "народный онтевирус" с эмулятором не только PE, но и скриптов вроде WSH. Задача не для одного в поле воина (-дзена).
Я пейсал, что могло бы быть вкусняшкой - поведенческий АВ. Тут и для кодеров есть приложение(-я), и для алгоритмеров, и для разных ЯП.
Ещё вариант, написание своей оси, например загрузчика, хотя-нет это сложно. Но можно например в качестве конкурса сделать, кто напишет мини-ось, пусть с уже имеющимся загрузчиком (U-Boot, Grub, на выбор). Ну вобщем идея такая, грузите свой загрузчик, например с флешки, далее передаёте управление своей проги и что-то делаете, например сканите устройства, отображаете список файлов и т.д. Интересная задача ? Тут вам и асм и си. И ещё много чего. А матан скучно и не интересно делать, ИМХО.