Открыть список
Как стать автором
Обновить

Комментарии 31

Если я не ошибаюсь первый алгоритм не понижает на степень объёма вычислений? Объём так и остается O(n4). Второй же алгоритм опускает сложность до O(n3)?
Да, вроде как кэш уменьшает только константу. А алгоритм Кадане пока вообще непонятно, как перенести на двумерный случай. Есть идеи?
Я сегодня практически додумался до снижения константы…
Получилось почти как в первом случае, только в N раз сложнее))
Разберусь с одномерным — подумаю над двумерным))
Продолжая «образовательную дискуссию» рассуждениями о совсем уж идеальном мире, на месте преподавателей я бы засчитывал участие в подобных конкурсах как курсовую или что-то в этом духе. Конкурс/олимпиада = оценка в зачетку, строчка в резюме и приз в семейный бюджет = PROFIT*3 ;)
Должно быть: sum = B[i2][j2]- B[i1-1][j2]- B[i2][j1-1]+ B[i1-1][j1-1]
Верно, опечатка, спасибо за поправку.
Загрузить 40 ядер? Да не вопрос, 1 индус вам в помощь.
«интересное кеширование» — это известный прием (например, тут)- называется чаще интегральное представление изображений. Попробую принять участие.
А главное на имаге троллфэйс уместен :)
Установите Windows и Касперского на максимум паранои, ядра загрузятся сами. Где мне забрать ноутбук?
А матрицы-то, с матрицами что?
ну и название конечно) нет, не слабо
mpirun -n 8 helloWorld.exe :-)
Борис, у меня вопрос (я задал его в письме, но не уверен, что оно дошло :) ):
после логина на intel я получаю всегда nginx 400 вместо страниц. Что-то не так с регистрацией или это временно?
Ответил в приват.
Регистрация работает, видимо это было временный Хабраэффект.
Доступ к MKL предоставляется через SSH over VPN. Насколько я понимаю это 1 сервер. Каким образом 1000 участников смогут одновременно тестировать твои программы на 40 ядрах? Ведь при каждом из запусков будет разное время выполнения… Память тоже одна на всех…

Я, конечно, понимаю что с финальным тестированием всё пройдёт гладко…
Троллфейс на картинке вверху видели? Шутка :)
Если открыть документ, который вам прислали админы MTL, то становится понятно, что во-первых, сервер не один, их много одинаковых, а во-вторых, задачи все запускают через шедулер, который рулит очередью задач и не дает им конфликтовать.
Не обратил внимания. Хорошо, что всё так поставлено)
Какой-то не честный конкурс в плане оценки.
  1. 0-150 очков за решение задачи.
  2. 0-25 очков за социальную активность
    • 1 балл начисляется Команде за каждое содержательное сообщение в Форумах Intel® Software Network от одного из ее участников.
    • 10 баллов начисляется Команде за одну содержательную статью или пост в блог Intel® Software Network от одного из ее участников.
  3. 25 очков за присланное Командой Описание работы.

т.е. можно идеально написать программу + описание (150 очков + 25 очков), но проиграть команде, которая занималась только написанием тем и сообщений (а задачу решила наихудшим путём)
За написание тем и сообщений команда может получить максимум 25 очков за весь конкурс. Разве это не понятно из таблицы выше? Я постараюсь убрать эту двусмысленность asap.
Лучше написать 'Максимум 25 очков за социальную активность'?
Ну да, пометка — но не более 25 очков, будет кстати.
Я вот всё равно не уверен, что до конца понял систему оценки. Можно ещё раз уточнить формулу по которой оценивается команда?
Легко!
Команда может набрать максимум 200 очков.
Из них 150 — за код (скорость, масштабируемость, правильность) — формула пока не разглашается.
Еще максимум 25 — за форум или посты в блог (1 форумный пост дает команде 1 балл, один блог — 10 баллов)
Еще 25 очков, если команда пришлет «Описание работы».
Как я понял не важно на каком писать языке?
Там написано что на сервере: GNU compilers, Intel® C++ Compiler Professional Edition for Linux так что наверное намек на Си и С++
Верно, намек на Си и поддерживать мы будем Си. Но если вы найдёте на MTL питон или java — велкам, можете писать и на них.
Кстати, а какие ограничения на входные данные? Тип элемента массива (int16/int32/int64/float и тому подобные) и какой размер массива может быть? Без этих данных довольно сложно что-то делать, т.к. при некоторых данных размер матрицы может быть такого размера, что не поместится в ОЗУ и тогда уже совершенно по другому придется всё делать.
Не совсем понятно про минимальный разрешенный размер итоговой матрицы.
Судя по этому
>>в первой паре оба числа должны быть меньше или равны соответственным числам во второй паре, т.е. сначала описывается координаты левого верхнего, а потом правого нижнего угла
итоговая матрица может (чисто теоретически) вырождаться в единствунную ячейку.

Поправьте, если не так.
Ничему не противоречит. Итоговая матрица может вырождаться в одну ячейку или же во всю входную матрицу (при определенных входных параметрах).
На вервый взгляд всё просто. Но если подумать, у матрицы 10х10 3025 подматриц. По правилам матрица может быть до 20000х20000 — страшно подумать сколько у ней будет подматриц О_о
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Информация

Дата основания
Местоположение
США
Сайт
www.intel.ru
Численность
5 001–10 000 человек
Дата регистрации
Представитель
Victoria Zhislina

Блог на Хабре