Win API для работы с ядрами

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Win API для работы с ядрами

Take a look at our health store to get the newest generic supplements

ThomasSpact » 23 сен 2017, 22:21

aOur site offers a wide variety of non prescription drugs. Visit our health portal in case you want to feel better with a help of general health products. http://5fo8.zithromaxbuynow.com/zithrom ... 18388.html Our company offers a wide variety of non prescription drugs. Take a look at our health website in case you want to look healthier with a help of generic supplements. http://7b.zithromaxbuynow.com/zithromax ... 11713.html Our company offers a wide variety of non prescription drugs. Look at our health site in case you want to look healthier with a help general health products. http://1u.zithromaxbuynow.com/zithromax ... 48150.html Our company offers a wide variety of non prescription drugs. Visit our health site in case you want to strengthen your health with a help of generic supplements. http://g4.zithromaxbuynow.com/zithromax ... 51099.html Our company provides a wide variety of non prescription products. Look at our health website in case you want to look better with a help of general health products. http://9w.zithromaxbuynow.com/zithromax ... 68339.html Our company provides a wide variety of non prescription products. Take a look at our health portal in case you want to feel better with a help general health products. http://6s.zithromaxbuynow.com/zithromax ... 81190.html
Our company offers herb-based healthcare products. Take a look at our health contributing website in case you want to improve your health. http://2im.zithromaxbuynow.com/zithroma ... 87431.html Our company offers a wide variety of non prescription drugs. Take a look at our health website in case you want to feel better with a help generic supplements. http://jg90.zithromaxbuynow.com/zithrom ... 86120.html Our company provides a wide variety of non prescription products. Take a look at our health portal in case you want to feel better with a help general health products. http://g5.zithromaxbuynow.com/zithromax ... 60800.html Our company offers herbal pills. Visit our health contributing portal in case you want to improve your health. http://4b8f.zithromaxbuynow.com/zithrom ... 50263.html Our company offers a wide variety of non prescription products. Take a look at our health site in case you want to look better with a help health products.

Re: Win API для работы с ядрами

Сионист » 29 авг 2015, 08:04

Крылья писал(а):вы задали для текущего процесса два процессора, а мне нужно в одном процессоре (у меня он 4-х ядерный) задать два ядра на выполнение.
Ядра - это в принципе и есть процессоры, только находящиеся в одном и том же корпусе. Возможно даже на одном и том же кристалле. У меня один четырёхелраный процессор, но винда общего корпуса в упор не замечает и считает, что процессоров 4, но одноядерных и SetupDiGetClassDevs перечисляет 4 одинаковых процессора.

Re: работа с ядрами

Сионист » 29 авг 2015, 07:58

Romeo писал(а):прочитав статью, всё сразу становится на свои места
Нда. Всё прочитало статью и потом встало на свои места. Оригинально так.

Re: Win API для работы с ядрами

Алексей Бачериков » 03 авг 2015, 14:53

Создаём программы на любой вкус по недорогой цене, любого уровня на сайте http://zakazprogi.usluga.me/

Re: Win API для работы с ядрами

WinMain » 03 апр 2015, 11:41

и еще хотел спросить, а вот есть библиотека mpi там есть интерфейс OpenMP , про это я читал в ...
так вот, там сказано что распараллеливание на OpenMP происходит на процессоры, типа можно создать кластер и всё такое, а на ядра нельзя расскидать а??
Если программа выполняется на одной машине, то OpenMP позволяет распараллелить выполнение процедур между ядрами процессора (или между процессорами).
Для этого в свойствах проекта нужно включить поддержку OpenMP (C/C++ -> Language -> Open MP Support). Далее в программном коде можно будет использовать специальные прагмы для распараллеливания процедур. #pragma omp (дополнительные параметры)

Более подробно эти параметры расписаны в MSDN: https://msdn.microsoft.com/en-us/librar ... .100).aspx

Re: Win API для работы с ядрами

Крылья » 26 мар 2015, 10:20

//предварительно получить кол-во процессоров в системе (у вас будет 4)....как сделать?
//для начала нужно написать общий AffinityMask с 1111b ....а зачем он нужен ??для чего??

//формирую два процесса "2+2" чтобы потом запустить на ядре

//Ну и завершить можно SetThreadIdealProcessor, в котором кажется, указывается индекс предпочитаемого процессора для потока. То есть для первого будет 0, а для второго 2.
Запускаем и радуемся распределенным вычислениям..... это как???

вот примерно сделал код...в качестве ответа можете просто его подредактировать???

Код: Выделить всё

#include <Windows.h>
#include <iostream>
#include <cstdio> 

using namespace std;

int main() {

	HANDLE process1 = как мне тут указать 2+2;
            HANDLE process2 = и тут 2+2;
	

	BOOL success1 = SetProcessAffinityMask(process1, 3->0011b);
            BOOL success2 = SetProcessAffinityMask(process2, 12->1100b);

	cout << success1 << endl;
            cout << success2 << endl;
	system("pause");
	return 0;
	
}
и еще хотел спросить, а вот есть библиотека mpi там есть интерфейс OpenMP , про это я читал тут
так вот, там сказано что распараллеливание на OpenMP происходит на процессоры, типа можно создать кластер и всё такое, а на ядра нельзя расскидать а??

Re: Win API для работы с ядрами

somewhere » 26 мар 2015, 06:54

Ну вообще то ядра - это логические CPU, которые как раз и задаются в SetProcessAffinityMask. С физическими CPU WinAPI практически не имеет дело.
как его представить так чтобы допустим у нас вычислялось к примеру "2+2".........в целом чтобы эти два операнда складывались на двух конкретных ядрах на процессоре
А это уже нужно SetProcessAffinityMask, SetThreadIdealProcessor. Разбиваем наши вычисления на отдельные потоки и каждому из них назначаем процессор(ы).
Можно предварительно получить кол-во процессоров в системе (у вас будет 4), затем сформировать общий AffinityMask для процесса (должен стать 1111b), затем сформировать AffinityMask для потоков. Если их два, то для одного будет 0011b, а для другого 1100b.
Ну и завершить можно SetThreadIdealProcessor, в котором кажется, указывается индекс предпочитаемого процессора для потока. То есть для первого будет 0, а для второго 2.
Запускаем и радуемся распределенным вычислениям =)

Re: Win API для работы с ядрами

Крылья » 25 мар 2015, 20:49

вы задали для текущего процесса два процессора, а мне нужно в одном процессоре (у меня он 4-х ядерный) задать два ядра на выполнение...... и еще, первый параметр, это наш процесс сам, как его представить так чтобы допустим у нас вычислялось к примеру "2+2".........в целом чтобы эти два операнда складывались на двух конкретных ядрах на процессоре....я думаю поняли...и спасибо за ответ

Re: работа с ядрами

somewhere » 25 мар 2015, 12:08

Они настолько простые, что нет смысла их детально разжевывать.
Например, в SetProcessAffinityMask передается хендл процесса и битовая маска, задающая CPU для этого процесса. Например:

Код: Выделить всё

SetProcessAffinityMask(GetCurrentProcess(), 5);
Задает для текущего процесса CPU0 и CPU2 (потому что включены биты 0 и 2 (00000101b = 5d))

Re: работа с ядрами

Romeo » 25 мар 2015, 11:11

Я не пользовался этими функциями, но на MSND очень подробно разжевано для чего они нужны и как с ними работать - прочитав статью, всё сразу становится на свои места. В чём проблема с MSDN? Перевести не получается? :)

Вернуться к началу