Я соглашусь с shodanex, похоже, вы преждевременно пытаетесь оптимизировать что-то, что еще не является проблемным. Если вы не знаете, что сокеты будут узким местом, я бы просто использовал их.
Многие люди, которые используют именованные каналы, находят небольшую экономию (в зависимости от того, насколько хорошо написано все остальное), но в конечном итоге получают код, который тратит больше времени на блокировку ответа IPC, чем на выполнение полезной работы. Конечно, в этом помогают неблокирующие схемы, но это может быть сложно. Потратив годы на перенос старого кода в современную эпоху, я могу сказать, что в большинстве случаев, которые я видел, ускорение почти равно нулю.
Если вы действительно думаете, что сокеты замедлят вашу работу, то выходите из ворот, используя общую память, уделяя особое внимание тому, как вы используете блокировки. Опять же, на самом деле вы можете обнаружить небольшое ускорение, но заметьте, что вы тратите его часть на ожидание блокировок взаимного исключения. Я не собираюсь выступать за поездку в futex ад (ну, не совсем ад больше в 2015 году, в зависимости от вашего опыта).
Грубый за фунт, сокеты (почти) всегда лучший способ использовать IPC пользовательского пространства под монолитным ядром ... и (обычно) самый простой в отладке и поддержке.
pipe(2)
(эmkfifo(3)
?) может быть победителем, но вы не узнаете, пока не попробуете.