Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 344
#1

Приоритет программы и кэш-память - C++

19.08.2013, 18:13. Просмотров 1252. Ответов 26
Метки нет (Все метки)

Всем привет!

Подскажите пожалуйста, есть ли способы в коде программы установить ее приоритет? А также очень интересует - можно ли запрограммировать так, чтобы программа загружалась в кэш-память сразу же, после ее загрузки в оперативную память?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2013, 18:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приоритет программы и кэш-память (C++):

Как повысить приоритет программы! - C++
Здравствуйте форумчане! Нужна помощь в написании программы. Программа на подобие диспетчера задач, единственная её работа это повышать...

Очищается ли вся динамическая память по завершению программы? - C++
#include<stdio.h> #include<malloc.h> #include<string.h> #include<locale.h> const int Max = 100; void main() { ...

Очищает ли операционная система память, после закрытия программы - C++
Очищает ли операционная система память, после закрытия программы. То-есть, следует ли очищать динамически распределенную память при...

Какую структуру имеет память которая выделяется для роботы программы на С++ - C++
Какую структуру имеет память которая выделяется для роботы программы на С++?

Кэш.Функции - C++
Многократно вызываемая функция может запоминать результаты последнего вычисления и если то что требуется она уже делала - то не...

кэш процессора - C++
Народ, помогите пожалуйста с такой вещью. Нужно получить информацию о кэше процессора. Были тщетные попытки использовать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
19.08.2013, 18:19 #2
Да что ты там такое программируешь? Ты можешь прямо сказать? И при чём тут кеш?
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
19.08.2013, 18:25 #3
Программа никогда полностью не загружается в кэш-память.
Нет, нельзя.
Используй valgrind если нужно отследить кэш-промахи.
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 344
19.08.2013, 18:58  [ТС] #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Да что ты там такое программируешь? Ты можешь прямо сказать?
Пока познаю нужные мне в будущем нишы, пока просто учусь

Цитата Сообщение от kvadro Посмотреть сообщение
Используй valgrind если нужно отследить кэш-промахи.
А смысл... меня поставят перед фактом что кэш-промахи есть... Как я смогу использовать эту информацию?
Убежденный
Системный программист
Эксперт С++
15512 / 7010 / 1108
Регистрация: 02.05.2013
Сообщений: 11,445
Завершенные тесты: 1
19.08.2013, 19:21 #5
Цитата Сообщение от BESSON_off Посмотреть сообщение
Подскажите пожалуйста, есть ли способы в коде программы установить ее приоритет?
SetPriorityClass (Windows).
Но скорее всего, приоритет - это не то, что Вы ищете. Огласите задачу целиком, так сказать.

Цитата Сообщение от BESSON_off Посмотреть сообщение
меня поставят перед фактом что кэш-промахи есть...
Уровень оптимизации, на котором становятся важны кэш-промахи - это программист из Intel-а с
длиннющим послужным списком и не менее длинной бородой, разрабатывающий ядро нового
графического процессора. Вы находитесь на этом уровне ? Не могу не выразить свое почтение...
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 344
19.08.2013, 19:43  [ТС] #6
Цитата Сообщение от Убежденный Посмотреть сообщение
Огласите задачу целиком, так сказать.
Мне нужно, чтобы моя программа выполнялась на компьютере самым, из всех возможных, быстрым способом с самым наивысшим приоритетом.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
19.08.2013, 19:44 #7
Цитата Сообщение от BESSON_off Посмотреть сообщение
Мне нужно, чтобы моя программа выполнялась на компьютере самым, из всех возможных, быстрым способом с самым наивысшим приоритетом.
тебя вообще не должно заботить её нахождение в кеше. закрывай тему.
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
19.08.2013, 20:21 #8
Мне нужно, чтобы моя программа выполнялась на компьютере самым, из всех возможных, быстрым способом с самым наивысшим приоритетом.
Установите высокий приоритет в планировщике и всё.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
19.08.2013, 21:56 #9
Цитата Сообщение от Убежденный Посмотреть сообщение
Уровень оптимизации, на котором становятся важны кэш-промахи - это программист из Intel-а с
длиннющим послужным списком и не менее длинной бородой, разрабатывающий ядро нового
графического процессора.
Вовсе нет, я как-то по работе с этим столкнулся - оптимизировал большие формулы для работы с огромными матрицами. Научился использовать руками софтварный префетч (асм вставки), понял как "заставить" процессор сделать префетч (грамотное обращение с памятью). Реально своими глазами увидел, что за счет уменьшения кэш-мисов можно значительно ускорить вычисления (прирост по скорости до 50% на некоторых участках). Вобщем я хочу сказать, что это не такая бесполезная вещь, как кажется.

P.S. на Intel'ах (читай x86) довольно грамотно реализован хардварный префетч, и руками там делать особо не чего, но вот не на Intel'ах...
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.08.2013, 22:51 #10
Цитата Сообщение от BESSON_off Посмотреть сообщение
с самым наивысшим приоритетом
а какую RTOS используете?
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
20.08.2013, 07:01 #11
Цитата Сообщение от BESSON_off Посмотреть сообщение
Мне нужно, чтобы моя программа выполнялась на компьютере самым, из всех возможных, быстрым способом с самым наивысшим приоритетом.
только меня интересует что ТС пытается закодить и с какой сложностью его алгоритм?
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 344
20.08.2013, 16:54  [ТС] #12
Цитата Сообщение от Jupiter Посмотреть сообщение
а какую RTOS используете?
А что это такое?

А если, допустим, имеется процессор 4 ядра и 3 однопоточных алгоритма, могу ли я программно направить каждую программу выполняться в своем ядре + 1 ядро оставить на ОС?

Цитата Сообщение от kvadro Посмотреть сообщение
Установите высокий приоритет в планировщике и всё.
Пока что я так и делаю, но должно же быть встроенное в С++ средство для этого...
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,231
Записей в блоге: 3
Завершенные тесты: 1
20.08.2013, 17:14 #13
Цитата Сообщение от BESSON_off Посмотреть сообщение
А что это такое?
Операционная система реального времени
Убежденный
Системный программист
Эксперт С++
15512 / 7010 / 1108
Регистрация: 02.05.2013
Сообщений: 11,445
Завершенные тесты: 1
20.08.2013, 17:17 #14
Цитата Сообщение от BESSON_off Посмотреть сообщение
А если, допустим, имеется процессор 4 ядра и 3 однопоточных алгоритма, могу ли я программно направить каждую программу выполняться в своем ядре + 1 ядро оставить на ОС?
Можете. Но реально это ничего не даст. ОС сама планирует потоки и, надо сказать,
довольно неплохо с этой задачей справляется.
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 344
20.08.2013, 20:05  [ТС] #15
Цитата Сообщение от Убежденный Посмотреть сообщение
Можете. Но реально это ничего не даст. ОС сама планирует потоки и, надо сказать,
довольно неплохо с этой задачей справляется.
А самый оптимальный вариант заставить программу выполняться максимально быстро по вашему какой? То есть все остальные в приоритете ОС должно быть на втором плане.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2013, 20:05
Привет! Вот еще темы с ответами:

Как работает кэш? - C++
Здравствуйте! Хочу понять как работает кэш. Задание такое: Нам надо нарисовать желтый квадрат на белом листе, для этого нам надо...

Добавление данных в кэш - C++
Здравствуйте. Есть ли какие-то средства (связанные непосредственно с плюсами или нет), позволяющие влиять на добавление данных в кэш. В...

C++ Кэш процессора (__cpuid) - C++
Нужно получить кэш процессора. Сумму L1, L2, L3 или по отдельности - не важно. Нашёл решение для L2, но метод тыка для L1 и L3 не...

Динамические массивы и кэш процессора - C++
Добрый вечер! У меня следующий вопрос: ниже представленный код выдает ошибку, как-бы нет доступа к памяти, IDE вижел 2011, главная суть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.08.2013, 20:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru