|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.06.2010, 21:20 | #11 |
Пользователь
Регистрация: 27.06.2010
Сообщений: 44
|
паралелятся в смысле для выполнения кластером?
и просто принципиально стало интересно почему не работает тот способ создания связанного списка из моего сообщения выше. В ассемблер лезть не буду конечно=), матрица разряженная то есть ненулевых элементов всего 1-2%. нули не то что не обрабатываются, но даже и не хрянятся. и по поводу кеша вопрос еще открыт. int i; объявляет переменную в быстрой области памяти, а callock в медленной куче? |
27.06.2010, 21:40 | #12 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
2) нужно так: Код:
|
|
27.06.2010, 21:57 | #13 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
почему бы и не полезть в ассемблер и не использовать MMX_SSE технологии - очень хорошая вещь, особенно для матриц
как раз создавалось для оптимизации вот таких вот задач, когда идет работа с массами однотипных данных правильно тут подсказали - OpenMP, и лучше, если у вас многопроцессорная система, тогда результат вас может удивить (меня удивил, когда я работал с OpenMP). Конечно, он может помочь и с одним процессором в многозадачной системе, однако это редкостное явление, это зависит от самой структуры цикла причем, много всяких вкусностей - разворачивание циклов, общие и локальные переменные для циклов, выполнение параллельно независимых участков кода и мн. другое а что насчет регистров процессора - да, это несомненно не обращение к ОЗУ, которое происходит в несколько тактов в отличие от регистров, обращение к которым происходит за такт, но большинство компиляторов С/С++ сами оптимизируют код и стараются где возможно использовать регистры процессора, если они не заняты |
27.06.2010, 22:32 | #14 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
|
|
28.06.2010, 02:58 | #15 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
Код:
никто и не просит писать всю программу на ассеблере, а только части, где происходят наиболее тяжелые вычисления причем использование MMX_SSE - Это уже под тегом __asm |
28.06.2010, 03:13 | #16 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
хотя бы из настроек студии )
|
28.06.2010, 09:15 | #17 |
Пользователь
Регистрация: 27.06.2010
Сообщений: 44
|
Спасибо за ответы. это последний аргумент в пользу купить новый комп. денег не особо жалко, но очень интересен опыт работы с мультипроцессорными системами. Вообще про них ничего не знаю, так что прошу советов... Насколько, например, обычные, собранные на однопроцессорном компиляторе программы совместимы с распаралелливанием и не будут ли они работать в 4 раза медленнее чем могли бы(для 4-х процессорных систем). И openMP это набор директив... то есть что то вроде патча для компилятора? Можно ли мне вмешиватся в распаралеливание, например чтобы совсем очевидно независимые части задачи считать независимо?
|
01.07.2010, 19:44 | #18 |
Пользователь
Регистрация: 28.06.2010
Сообщений: 40
|
купи мего эвм и не парся=)))
|
01.07.2010, 23:36 | #19 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
А я бы вам книжки умные почитать бы посоветовал, к примеру, "Совершенный код", там много чего есть на эту тему.
|
05.07.2010, 16:31 | #20 |
Пользователь
Регистрация: 27.06.2010
Сообщений: 44
|
а как пользоваться профайлером и что это такое?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос быстродействия | _Денис | C++ Builder | 1 | 14.11.2009 17:00 |
Создание логических разделов на основном | Kreadlling | Операционные системы общие вопросы | 3 | 12.09.2009 14:39 |
Кто что в основном программирует | Rekky | Свободное общение | 24 | 05.05.2009 16:25 |
Вопросы о оптимизации работы с СУБД | Stilet | БД в Delphi | 8 | 21.07.2008 11:29 |
Вопросы по оптимизации скорости | Иллидан | Общие вопросы Delphi | 9 | 11.07.2008 23:46 |