![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |||
Пользователь
Регистрация: 08.02.2010
Сообщений: 51
|
![]()
Да, так как считает тов. Ulex, считать в общем случае нельзя. Во-первых, 10 тактов на цикл - это может в среднем и правильно, но на каждое новое выполнение может дать другое время, это связано с особенностью работы с памятью: элемент матрицы мог попасть в КЭШ, тогда все хорошо, а мог не попасть. Далее, никто не говорит, что нужно именно тройным циклом считать, есть еще куча методов, где организация вычислений куда более оптимальная. Например, вот моя программа работала почти 15 минут, учтя только возможность кэширования массивов я могу ускорить ее, примерно, втрое. Пока думаю как это сделать на практике...
Цитата:
Цитата:
Цитата:
|
|||
![]() |
![]() |
#12 | |||
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
![]() Цитата:
Цитата:
Цитата:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс Последний раз редактировалось ROD; 09.02.2010 в 09:18. |
|||
![]() |
![]() |
#13 |
Пользователь
Регистрация: 08.02.2010
Сообщений: 51
|
![]()
Больше мне делать нечего : ) Что у всех такое странное недоверие? Одна простая вещь: если мне любой ценой нужно будет очень быстро перемножить матрицы, я напишу программу для кластера. Здесь принципиальны именно те ограничения, которые я указал. Хочу понять, насколько можно написать эффективный последовательный код именно при таких условиях. Далее, заметьте, что я сам тоже принимаю участие в конкурсе, поэтому если бы это была лаба или курсовая, я бы сам ее написал. Тем более, я уже давно закончил университет. Ребята, да вы что?! Халявная тысяча лежит, а вы какие-то странные вопросы задаете!
Другие мои конкурсы будут гораздо сложнее. Ну вот установили вы Windows XP и все (стандартная установка + SP3). Он у меня называется "голым". |
![]() |
![]() |
#14 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Зверь считается чистой виндой
![]() А разве с чистой виндой поставляется GCC 3.4.5 ![]() А можно использовать видеокарту в помощь расчетам? И может где-то и было написано, я не углядел, а что 2 ядра использовать нельзя?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 09.02.2010 в 10:20. |
![]() |
![]() |
#15 | |
Пользователь
Регистрация: 08.02.2010
Сообщений: 51
|
![]() Цитата:
Конкурсы по параллельным вычислениям и по видеокартам еще впереди. Всему свое время. Для начала выиграйте этот. |
|
![]() |
![]() |
#16 | |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
![]() Цитата:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
|
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
Алаверды первому из вопросов Ulex'a.
Как, всё-таки, будет засекаться время вычислений (без учёта времени I/O)? Я, ради интереса, наставил самых элементарных time'ов на старте, после окончания "ввода" (случайной генерации), после окончания перемножения и после окончания вывода в файл. Ввод-вывод (без какой бы то ни было оптимизации, естественно) у меня забирает от 40% (n=1024) до 16% (n=5000) от общего времени работы. И это ж при "вводе" у меня никаких дисковых операций на самом деле пока нет... Последний раз редактировалось Vago; 09.02.2010 в 12:42. |
![]() |
![]() |
#18 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
![]()
а какая разница как считать время?
оно же для всех одинаковое будет, т.е всем читать и всем записывать, а победит тот чья программа быстрей, а из-за чего и почему быстрей - не имеет значения, что не так? |
![]() |
![]() |
#19 | ||
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Цитата:
Я, кстати, ошибся. Размер входного файла не 2, а ~200 Мбайт. (глазки спать хотели и два нолика не заметили). И как то я не верю, что время считывания текстового файла размером 200 М и разбор его (а это как минимум перевод символов в integer) будет занимать долю секунды. Признавайтесь - на какой максимальной размерности матрицы вы тестировали свою программу, и как было получено итоговое время прохождения теста? Это ни в коем случае не наезды, мне просто действительно любопытно. Я вот, например, накидал по быренькому умножение матриц (без всяких наворотов, просто строка на столбец). Так как с файлом заморачиваться не хочу, то пока элементы входных матриц тоже генерятся рандомно. Но, любопытно время. Для матрицы 2500*2500 программа считает вых. матрицу примерно 5 мин. Соответственно для 5000*5000 время будет ~ в 8 раз больше -> что такая матрица на моей конфигурации будет считаться ~ 40 мин. Это без всякого файлового ввода. Но я на такой размерности даже и запускать не стал. Конфигурация: 3-ий Celeron ~1270 MГц (одно ядро, естественно). ОЗУ - 256 Мбайт. Программа работала с приоритетом REAL_TIME. Цитата:
Если бы задача ставилась как быстрое чтение и разбор файла, то зачем тогда тут матрица нужна?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru Последний раз редактировалось Stilet; 10.02.2010 в 13:22. |
||
![]() |
![]() |
#20 | ||||||
Пользователь
Регистрация: 08.02.2010
Сообщений: 51
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Хотя я рад, что началось бурное обсуждение : ) |
||||||
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перемножение матриц | stscolt | Помощь студентам | 0 | 09.10.2009 16:54 |
Перемножение матриц | jorjinho10 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 11.05.2009 12:56 |
Перемножение матриц | Blad47 | Общие вопросы C/C++ | 1 | 02.02.2009 00:21 |
Перемножение матриц | Арина | Помощь студентам | 1 | 18.05.2007 19:21 |