|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.09.2010, 16:18 | #1 |
Пользователь
Регистрация: 27.06.2010
Сообщений: 44
|
Трехканальность.
если я правиольно понимаю, это означает, что процессор может работать одновременно с тремя планками памяти. Встает вопрос как оптимизировать свое приложение так, чтобы при выполнении программы каждое из ядер размещало данные по планкам так, чтобы можно было работать с ними паралельно.
то есть не было такого что все данные программы в одной планке и трехканальность никак не помогает при распаралеливании, что другим ядрам нужно ждать пока одно получит свои данные. |
17.09.2010, 23:07 | #2 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 165
|
По-моему, ты собираешься заняться какой-то ерундой. Процессор же не обращается к памяти КАЖДЫЙ раз когда ему нужно получить несколько байт. Для этого есть кэш-память и всё-такое.
|
19.09.2010, 09:07 | #3 |
Пользователь
Регистрация: 27.06.2010
Сообщений: 44
|
ну у моего приложения объемы постоянно используемых данных несколько гигов и хранить все в кеше нельзя. Итак, как пользоваться трехканальностю? Вопрос открыт=)
|
19.09.2010, 13:48 | #4 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
|
|
19.09.2010, 13:54 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
1)где вы вообще взяли трехканальность эту?
2)вам всеравно не дадут прав решать где какую страницу памяти располагать в ОЗУ. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
19.09.2010, 22:30 | #6 |
Пользователь
Регистрация: 27.06.2010
Сообщений: 44
|
Расскажите пожалуйста тогда что это значит.
чтобы тем не плодить тут спрошу. как в визуал студио включить опцию, которая когда пишешь переменную показывает сразу какие есть в программе и можно выбрать? Последний раз редактировалось Stilet; 17.10.2010 в 18:25. |
26.09.2010, 21:58 | #7 |
Форумчанин
Регистрация: 26.10.2009
Сообщений: 170
|
это успешно делает visual assist - плагин для MSVS. Он, правда, по -моему, не бесплатный, но кряки в инете должны быть
Вы в каком языке программирования видели, чтобы программист мог вальяжно заказывать области памяти, в которых его программа будет размещать свой код? Раньше люди писали на ассемблере под DOS. Вот там-то можно было решать по каким адресам распихивать свои данные. Но и тогда врядли можно было писать данные в какую-то планку по выбору. Что вы можете сделать для оптимизации работы с памятью, так это, например, использовать аллокаторы памяти в программе для более экономного его расходования. Ну а если ваше приложение юзает такие объемы памяти, реализуйте динамическую подгрузку данных. Последний раз редактировалось Stilet; 17.10.2010 в 18:26. |
26.09.2010, 23:58 | #8 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
Это невозможно, технически. Выбор каналов памяти и чипов памяти осуществляет контроллер памяти, расположенный в процессоре. Он не доступен для программирования, даже с Assembler уровня.
|
17.10.2010, 16:05 | #9 |
Пользователь
Регистрация: 27.06.2010
Сообщений: 44
|
на самом деле все немного прояснилось. Есть в паралельном программировании понятие "локальность данных" это означает, что размещение данных надо проводить распаралеленно, в этом случае каждый поток размещает нужные ему данные в удобном для него месте.
если это так, то потоки получают доступ к таким способом размещенным данным в несколько раз быстрее. |
17.10.2010, 17:34 | #10 |
Пользователь
Регистрация: 30.08.2010
Сообщений: 41
|
Интересный вопрос но что бы перераспределить данные переменных сред по физическим планкам ОЗУ то их сначала надо определить скоко их всего потом определить адрес слота каждой планки.
Я правда не знаю может ли WinXP обращятся к пустым регистрам памяти в неочереди. Кстати надо установить SiSoft Sandra и посмотреть на как этот софт работает с ОЗУ. |