Почему время работы Linux не сокращается, если передать половину работы двум процессам?Linux

Ответить Пред. темаСлед. тема
Anonymous
 Почему время работы Linux не сокращается, если передать половину работы двум процессам?

Сообщение Anonymous »

Я использую версию Linux Mint/Ubuntu на настольном компьютере.
Машина имеет 32 ГБ оперативной памяти и 4-ядерный/8-поточный процессор Intel. (i7-3770).
У меня есть приложение (написанное на C), состоящее из клиентского процесса и серверного процесса, которые взаимодействуют через общую область памяти. (mmap)
Общий порядок действий:
Сервер: ожидает семафора запроса.
Клиент: считывает запись с диска. Форматирует запрос в области общей памяти. Выполняет вызов Wake для семафора Query. Ожидает семафора «Ответ».
Сервер: Просыпается. Считывает запрос запроса из области общей памяти. Вычисляет результат и помещает его в общую область памяти. Выдает сигнал пробуждения для семафора «Ответ».
Ожидает семафор «Запрос».
Повторяйте до завершения.
Запишите итоговые значения в выходные данные. (Обычно результат каждого запроса НЕ выводится, а только суммируется до конца выполнения).
Для обработки, скажем, 10 000 запросов требуется, например, 1000 секунд затраченного времени.< /p>
Если я разделю набор запросов на две части по 5000 запросов. А затем запустите две команды «Клиент-Сервер», по одной паре, для обработки каждого фрагмента из 5000.
Я ожидаю, что задание будет выполнено примерно за 500 секунд затраченного времени.
Но на самом деле затраченное время все еще равно примерно 1000 секунд.
Прошедшее время не стало короче.
Q1. Могу ли я что-нибудь сделать, чтобы назначить каждую «половину проблемы» разным ядрам и, следовательно, ускорить весь процесс?
Q2. Могу ли я использовать какой-нибудь инструментарий или трассировку, которые подскажут мне, почему разделение проблемы на две части не сокращает затраченное время?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -processes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»