Создайте процесс, определяющий узел NUMA для запуска

Вы можете создать для этого функцию:

/**
* Split a string by string (Similar to the php function explode())
*
* @param VARCHAR(12) delim The boundary string (delimiter).
* @param VARCHAR(255) str The input string.
* @param INT pos The index of the string to return
* @return VARCHAR(255) The (pos)th substring
* @return VARCHAR(255) Returns the [pos]th string created by splitting the str parameter on boundaries formed by the delimiter.
* @{@example
*     SELECT SPLIT_STRING('|', 'one|two|three|four', 1);
*     This query
* }
*/
DROP FUNCTION IF EXISTS SPLIT_STRING;
CREATE FUNCTION SPLIT_STRING(delim VARCHAR(12), str VARCHAR(255), pos INT)
RETURNS VARCHAR(255) DETERMINISTIC
RETURN
    REPLACE(
        SUBSTRING(
            SUBSTRING_INDEX(str, delim, pos),
            LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1
        ),
        delim, ''
    );

Преобразование магического псевдокода для его использования: у вас есть:

SELECT e.`studentId`, SPLIT_STRING(',', c.`courseNames`, e.`courseId`)
FROM...
0
задан Serge Rogatch 19 March 2019 в 16:02
поделиться

1 ответ

Вы можете передать STARTUPINFOEX в CreateProcess() (включить флаг EXTENDED_STARTUPINFO_PRESENT), где STARTUPINFOEX содержит указатель на структуру PROC_THREAD_ATTRIBUTE_LIST, которая в списке есть элемент PROC_THREAD_ATTRIBUTE_PREFERRED_NODE:

Параметр lpValue является указателем на номер узла предпочтительного узла NUMA для нового процесса.

См. InitializeProcThreadAttributeList() и UpdateProcThreadAttribute() для получения дополнительной информации о построении списка атрибутов.

Раймонд Чен обсуждает PROC_THREAD_ATTRIBUTE_LIST в своем блоге:

Программно контролирует, какие дескрипторы наследуются новыми процессами в Win32

Еще один способ создания процесс с атрибутами, может быть, хуже, может быть лучше

0
ответ дан Remy Lebeau 19 March 2019 в 16:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: