Геймификация скучных процессов

Apr 25, 2016 23:18

13 апреля я опубликовал пост с текстом интересной, как мне тогда казалось, вакансии, и он провисел неделю. Много ли за эту неделю заинтересовалось ей людей? Нуль!
19 апреля я предложил развлекательную тестовую задачку для потенциальных кандидатов и им сочувствующих, и внезапно за одну такую же неделю мне наприсылали какие-то полчища резюме, что я ( Read more... )

problem, erlang, work, candidate, vacancy, games, rust, lisp, elm

Leave a comment

thesz April 26 2016, 09:56:57 UTC
Ха.

Я первый решил все задания, решил правильно, и мне до сих пор никто не прислал письма с просьбой прислать резюме!

Из чего я вывожу, что это была обманка - чисто похвастаться.

Reply

swizard April 26 2016, 11:59:51 UTC
Но ведь ты же не прислал письма с просьбой прислать письмо с просьбой прислать резюме!!

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

Reply

thesz April 26 2016, 12:25:19 UTC
Это заслуживает отдельного поста, как и моё решение.

Reply

thesz April 27 2016, 00:03:00 UTC
Если я не ошибаюсь, то у Вас в третьей задаче получилось лучшее решение по Вашим словам, чем у автора swizard. Вы говорите, что получили расписание в 25 секунд на двух процессорах для примера номер 6.

Если не ошибаюсь, то после подсчета всех задержек операций для примера номер 6 получается 56 секунд. Но 2 процессора по 25 секунд дают только 50 секунд в сумме. Как так получается?

То есть уже глядя на это можно сказать, что решение третье й задачи некорректнное и не удивительно, что не последовало предложения от трудоустройстве. Странно, что swizard это не озвучил

Reply

nponeccop April 27 2016, 00:20:29 UTC
Тонко!

Reply

worm_ii April 27 2016, 07:46:07 UTC
Может быть, там оптимизация: встречающиеся по два раза подвыражения (- 3 (* 2 1)) и (- 10 9) вычисляются только один раз?

Reply

thesz April 27 2016, 08:39:35 UTC
Не похоже, поскольку там еще два умножения остается по 10 секунд. И вроде в условиях задачи про оптимизации вычислений не говорится, только планирование. Да и чего останавливаться на анализе общих подвыражений тогда. Может сразу константный результат подсчитать и подставить?

Reply

thesz April 27 2016, 10:01:05 UTC
Так и есть. Общение со swizard не запретило использование CSE.

Reply

thesz April 27 2016, 09:50:47 UTC
Потрудитесь прочитать все коммментарии к записи с задачами.

Reply

thesz April 27 2016, 10:07:45 UTC
Я видел только Ваш комментарий про использование CSE там или что-то еще было? Ну так вот предположим CSE "бесплатное" для интерпретатора, хотя это не так. Там как минимум одно умножение внутри общего подвыражения, а еще два последовательных умножения, возведение в квадрат и умножение на 2, итого 30 сек. Вы может выложить распланированные операции примера 6 для двух процессоров?

Reply

thesz April 27 2016, 10:11:54 UTC
Мой код показывает расписание.

Reply

thesz April 27 2016, 11:01:32 UTC
Вот упрощу пример номер 6. убрав операции сложения и вычитания, чтобы было ясно, на что я обращаю внимание

a*(b*c)*(b*c)

В этом примере получается 3 последовательных операции умножения, их нельзя выполнять параллельно, потому что операнд следующей операции умножения вычисляется на предыдущем шаге, кроме самого первого. Получается 3*10=30 секунд. А в Вашем планировщике получилось грубо говоря 20 секунд на вычисление умножений потрачено.

Вообще это задачка даже не для студентов первого курса, а для школьников, которая считается в уме. Тут даже не надо запускать код на Хаскелле, чтобы процесс поиска истины шел побыстрее. Неужто верификацию нельзя провести простыми вычислениями в уме?

Вот есть у Вас какие-то гипотезы хотя бы как такой код распланировать за 20 сек на двух-трех-десяти процессорах? Или в Вашей реализации все-таки ошибка?

Reply

thesz April 27 2016, 11:07:47 UTC
Вы неправы.

Прочитайте внимательно задание.

То, что вы описали, записывается, как (* a (* b c) (* b c)). В правильной префиксной записи это *(a,*(b,c),*(b,c)). То есть, умножение здесь тернарное, выполняется сразу над тремя аргументами и не превращается в *(a,*(*(b,c),*(b,c))).

По крайней мере, только из такой интерпретации получаются расписания swizard. Это лисповая интерпретация, не обычная.

Reply

thesz April 27 2016, 12:24:33 UTC
Тут тогда речь идет не о правости/неправости кого-либо, а о некорректной постановке задачи, в условиях которой нет оптимальных решений, потому что нет критериев ( ... )

Reply

thesz April 27 2016, 12:39:07 UTC
Их хватает, этих критериев. Присмотритесь повнимательней.

Reply

thesz April 27 2016, 12:44:01 UTC
Так какие ограничения на ускорение вычислений? СSE ведь не бесплатное

А так можно и в 23 секунды уложиться при планировании, ежели манипулировать выичслениями

Reply


Leave a comment

Up