Como direcionar um programa em C para rodar em uma CPU ( e ou core) específica ?

1. Como direcionar um programa em C para rodar em uma CPU ( e ou core) específica ?

Fabio Bairros
fdabairros

(usa Ubuntu)

Enviado em 11/10/2021 - 07:32h

Gostaria de rodar um determinado programa feito em C num CPU ou core específicos e depois verificar se ele realmente rodou lá (arquivo de log, etc).
Estou usando o Ubuntu e o GCC.


Obrigado.


  


2. Re: Como direcionar um programa em C para rodar em uma CPU ( e ou core) específica ?

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 11/10/2021 - 18:46h


tem o taskset do pacote util-linux


3. Re: Como direcionar um programa em C para rodar em uma CPU ( e ou core) específica ?

Paulo
paulo1205

(usa Ubuntu)

Enviado em 11/10/2021 - 20:17h

Tem de ser com o suporte do sistema operacional, com uma ferramenta como a que o Leandro mencionou acima. E também em nível de SO você pode acompanhar se é verdade (se for um programa que usa muita CPU, o próprio top vai permitir que você veja se um processador específico ficou com carga maior do que o resto dos outros processadores).

Ou você se refere a fazer essa atribuição e essa mensuração dentro do seu próprio programa?


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


4. Re: Como direcionar um programa em C para rodar em uma CPU ( e ou core) específica ?

Fabio Bairros
fdabairros

(usa Ubuntu)

Enviado em 12/10/2021 - 11:39h


paulo1205 escreveu:

Tem de ser com o suporte do sistema operacional, com uma ferramenta como a que o Leandro mencionou acima. E também em nível de SO você pode acompanhar se é verdade (se for um programa que usa muita CPU, o próprio top vai permitir que você veja se um processador específico ficou com carga maior do que o resto dos outros processadores).

Ou você se refere a fazer essa atribuição e essa mensuração dentro do seu próprio programa?


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Obrigado pelo retorno, Paulo.

Como o programa que estou testando tem um tempo de duração curta, provavelmente não poderá ser monitorado. Eu gostaria de uma confirmação em algum registro de log. Apenas para ter algo documentado de que realmente ele rodou naquele core e ou CPU.


att,
Fábio




5. Re: Como direcionar um programa em C para rodar em uma CPU ( e ou core) específica ?

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 13/10/2021 - 16:51h


fdabairros escreveu:


paulo1205 escreveu:

Tem de ser com o suporte do sistema operacional, com uma ferramenta como a que o Leandro mencionou acima. E também em nível de SO você pode acompanhar se é verdade (se for um programa que usa muita CPU, o próprio top vai permitir que você veja se um processador específico ficou com carga maior do que o resto dos outros processadores).

Ou você se refere a fazer essa atribuição e essa mensuração dentro do seu próprio programa?


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Obrigado pelo retorno, Paulo.

Como o programa que estou testando tem um tempo de duração curta, provavelmente não poderá ser monitorado. Eu gostaria de uma confirmação em algum registro de log. Apenas para ter algo documentado de que realmente ele rodou naquele core e ou CPU.


att,
Fábio


Eu não testei aqui, mas é muito provável que a alocação seja registrada no dmesg e no journalctl. É possível acompanhar tb pelo ps e, se vc redirecionar a saída, pode rodar c o watch p gerar vários arquivos de tantos em tantos segunfo com a saída do ps p examinar



6. Re: Como direcionar um programa em C para rodar em uma CPU ( e ou core) específica ?

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 14/10/2021 - 19:23h


leandropscardua escreveu:


fdabairros escreveu:


paulo1205 escreveu:

Tem de ser com o suporte do sistema operacional, com uma ferramenta como a que o Leandro mencionou acima. E também em nível de SO você pode acompanhar se é verdade (se for um programa que usa muita CPU, o próprio top vai permitir que você veja se um processador específico ficou com carga maior do que o resto dos outros processadores).

Ou você se refere a fazer essa atribuição e essa mensuração dentro do seu próprio programa?


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Obrigado pelo retorno, Paulo.

Como o programa que estou testando tem um tempo de duração curta, provavelmente não poderá ser monitorado. Eu gostaria de uma confirmação em algum registro de log. Apenas para ter algo documentado de que realmente ele rodou naquele core e ou CPU.


att,
Fábio


Eu não testei aqui, mas é muito provável que a alocação seja registrada no dmesg e no journalctl. É possível acompanhar tb pelo ps e, se vc redirecionar a saída, pode rodar c o watch p gerar vários arquivos de tantos em tantos segunfo com a saída do ps p examinar

Saiu hoje na admin magazine
https://www.admin-magazine.com/HPC/Articles/Processor-Affinity-for-OpenMP-and-MPI







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts