Você está na página 1de 9

0535

GDS/{CODIGO}

GRUPO DE ESTUDO DE DESEMPENHO DE SISTEMAS ELÉTRICOS - GDS

PARALELIZAÇÃO DE PROCEDIMENTOS NECESSÁRIOS PARA A ANÁLISE DO COMPORTAMENTO


HARMÔNICO DE SISTEMAS ELÉTRICOS DE GRANDE PORTE

THOMAS MOREIRA CAMPELLO (1); THIAGO JOSÉ BARBOSA DA ROCHA (2); SERGIO LUIS
VARRICCHIO (1); CRISTIANO DE OLIVEIRA COSTA (1)
CENTRO DE PESQUISAS DE ENERGIA ELETRICA – CEPEL (1);
UNIVERSIDADE FEDERAL FLUMINENSE – UFF (2)

RESUMO

O programa HarmZs é uma ferramenta fornecida e desenvolvida pelo CEPEL para estudos de comportamento
harmônico e análise modal de redes elétricas de grande porte, que tem como objetivo principal a identificação e
proposição de soluções de problemas relacionados a harmônicos. O artigo discute a implementação de
processamento paralelo em alguns algoritmos ou métodos do programa propícios a esta técnica, como uma etapa
natural para melhoria de seu desempenho computacional. O informe técnico apresenta os conceitos teóricos para a
paralelização e apresenta os resultados iniciais de desempenho computacional dos primeiros métodos onde foi
aplicada a programação paralela.

PALAVRAS-CHAVE: HarmZs; Paralelização; OpenMP; Resposta em Frequência; Método do Lugar Geométrico

1.0 INTRODUÇÃO

O programa HarmZs é uma ferramenta fornecida e desenvolvida pelo CEPEL para estudos de comportamento
harmônico e análise modal de redes elétricas de grande porte, que tem como objetivo principal a identificação e
proposição de soluções de problemas relacionados a harmônicos. Como exemplo de sua aplicação, pode-se citar o
estudo de impacto harmônico devido ao acesso de novas instalações à rede básica do Sistema Interligado Nacional
(SIN), como complexos eólicos e solares. Entende-se por impacto harmônico o cálculo das máximas distorções
harmônicas de tensão no Ponto de Acoplamento Comum (PAC) entre o novo acessante e o SIN. Outra aplicação
importante é a geração de subsídios técnicos para o projeto de filtros harmônicos de indústrias e de conversoras de
corrente contínua. O HarmZs possui um conjunto de ferramentas e interfaces gráficas que tornam a execução de
todos esses estudos completamente automatizada.

Para a realização dos estudos de acesso [1], é necessário se considerar diversas contingências, frequências e
cenários do SIN. Portanto, a realização de um estudo de acesso típico exige que um elevado número de casos seja
executado computacionalmente, em que, para cada frequência e topologia do SIN consideradas, é necessária a
montagem da matriz de admitâncias nodais 𝐘, sua fatoração 𝐋𝐔 e a solução de dois sistemas lineares triangulares
equivalentes. Para diminuir o esforço computacional demandado por cada estudo de acesso, foi desenvolvido e
implementado no programa HarmZs um método de alto desempenho computacional [2], denominado método Turbo
ou Ferramenta Turbo. Esse método calcula todas as impedâncias harmônicas vistas do PAC das redes
contingenciadas do SIN em função da impedância da rede íntegra, reduzindo significativamente o tempo de
processamento, de horas para minutos.

Em termos de desempenho computacional, o método Turbo é um exemplo da busca constante, por parte do Cepel,
de implementações sequenciais eficientes dos algoritmos utilizados em suas metodologias.

Outra forma que tem sido muito utilizada em aplicações computacionais recentes para reduzir o tempo computacional
é a paralelização dos algoritmos. Uma das principais estratégias é a paralelização por threads, que se baseia em
memória compartilhada em computadores de múltiplos núcleos. Entretanto, quando as primeiras versões do HarmZs
foram desenvolvidas, a tecnologia multi-core ainda era insipiente. Além disso, na época, o aumento exponencial de
clock de processadores relegou a estratégia de paralelização a um segundo plano nos programas.

Entretanto, atualmente, computadores pessoais multi-core são o padrão, comumente encontrados com 8 núcleos ou
mais. Com isso, evidencia-se a importância da paralelização. No entanto, há alguns desafios. Alguns algoritmos ou
métodos são muito difíceis de serem paralelizados e, ainda, há outros cuja paralelização resulta no aumento do
tempo de processamento [3]. Porém, alguns tipos de cálculo, como, por exemplo, o de resposta em frequência (RF)

thomascampello_ext@cepel.br
2

do HarmZs, são particularmente propícios à paralelização. Isso acontece porque a solução da rede elétrica para cada
frequência é completamente independente.

Dessa forma, como uma etapa natural para melhoria do desempenho computacional do HarmZs, se encontra em
fase de implementação o processamento paralelo por threads para alguns dos procedimentos necessários para a
análise do comportamento harmônico de sistemas elétricos de grande porte.

O HarmZs é estruturado em C++ e, dessa forma, uma possibilidade seria a utilização da própria biblioteca padrão da
linguagem (STL, do inglês Standard Template Library). Entretanto, adotou-se o OpenMP [4], que é uma Interface de
Programação de Aplicativos (API, do inglês Application Programming Interface) para paralelização em sistemas de
memória compartilhada. Devido ao fato do HarmZs já possuir uma estrutura paralelizável, ponderou-se que não
haveria necessidade do controle fino proporcionado pelo uso de threads nativas, optando-se pela simplicidade do
OpenMP.

Inicialmente, a paralelização foi aplicada no cálculo de respostas em frequência e no método Turbo, para cálculo das
impedâncias do SIN vistas no Ponto de Acoplamento Comum (PAC). Estas impedâncias (ou admitâncias) são
utilizadas no Método do Lugar Geométrico (MLG) para cálculo das máximas distorções harmônicas de tensão.
Portanto, o objetivo deste informe técnico (IT) é apresentar os principais conceitos teóricos destas metodologias, que
possuem a vantagem de serem naturalmente paralelizáveis, e mostrar os resultados iniciais de ganho de
desempenho computacional com a programação paralela.

2.0 MÉTODOS DE CÁLCULOS

O HarmZs permite que o usuário modele os sistemas de potência utilizando duas formulações diferentes. A primeira
é a modelagem no domínio do tempo por Sistemas Descritores (SDs) [5, 6], onde o comportamento dinâmico da rede
elétrica é descrito pelas equações diferenciais e algébricas de cada componente do sistema, junto com as equações
produzidas pela aplicação da lei de correntes de Kirchhoff à cada nó do circuito. A partir do sistema de equações
obtido, a modelagem no domínio da frequência é obtida pela aplicação da transformada de Laplace. A segunda é a
modelagem pela matriz de admitâncias nodais 𝐘(𝑠) expandida, escrita diretamente no domínio da frequência
complexa 𝑠 [5, 7]. Como será visto no subitem 2.1, a matriz 𝐘(𝑠) é construída de forma similar à matriz de admitâncias
nodais tradicional 𝐘𝐛𝐮𝐬 (𝑗ω), construída na frequência fundamental ω para cálculos de fluxo de potência, curto-circuito
etc., com equações extras para a consideração das fontes de tensão do sistema.

A formulação por SDs apresenta dificuldades em modelar parâmetros elétricos dependentes da frequência, como é
o caso de linhas de transmissão. Além disto, as matrizes resultantes desta formulação possuem dimensões muito
maiores que o número de barras do sistema. Por estas razões, os estudos de acesso são realizados utilizando a
formulação por 𝐘(𝑠).

2.1 Formulação 𝐘(𝑠)

As relações dinâmicas de um sistema MIMO (Multi-Input Multi-Output) de ordem 𝑁 com 𝑚 entradas e 𝑟 saídas
podem ser representadas no domínio da frequência complexa 𝑠 através da formulação 𝐘(𝑠), dada por [7, 8, 9]:
𝐘(𝑠) 𝐱(𝑠) = 𝐁 𝐮(𝑠) (1)
𝐲(𝑠) = 𝐂𝑇 𝐱(𝑠) + 𝐃 𝐮(𝑠) (2)
onde 𝐱(𝑠) ∈ ℂ𝑁 representa o vetor de variáveis de interesse, 𝐮(𝑠) ∈ ℂ𝑚 e 𝐲(𝑠) ∈ ℂ𝑟 são os vetores de entrada e
saída, respectivamente. As matrizes 𝐁 ∈ ℝ𝑁x 𝑚 , 𝐂 ∈ ℝ𝑁x 𝑟 e 𝐃 ∈ ℝ𝑟 x 𝑚 são constantes, enquanto 𝐘(𝑠) ∈ ℂ𝑁x𝑁 é
uma matriz cujos elementos são, em geral, funções não lineares de 𝑠.

No caso do sistema em consideração ser uma rede elétrica com 𝑛𝑏 barras e 𝑛𝑓 fontes de tensão, (1) pode ser escrita
como:

(3)

onde 𝐘𝐛𝐮𝐬 ∈ ℂ𝑛𝑏×𝑛𝑏 é a matriz de admitâncias nodais do sistema desconsiderando as fontes de tensão. Assim, o
elemento 𝑦𝑖𝑖 desta matriz é calculado pela soma das admitâncias primitivas que se conectam à barra 𝑖, enquanto o
elemento 𝑦𝑖𝑗 é igual ao negativo da soma das admitâncias primitivas que conectam as barras 𝑖 e 𝑗. A matriz 𝐙𝐟 ∈
ℂ𝑛𝑓×𝑛𝑓 é diagonal com seus elementos iguais às impedâncias internas das fontes. Os vetores 𝐯𝐟 ∈ ℂ𝑛𝑓 e 𝐢𝐟 ∈ ℂ𝑛𝑓 e
são compostos pelas tensões internas e correntes das fontes. A matriz 𝐊 ∈ ℝ𝑛𝑓 ×𝑛𝑏 é composta por elementos iguais
a 0, 1 e −1. Cada linha desta matriz indica a posição em que cada fonte de tensão está conectada. Assim, cada linha
de 𝐊 terá um elemento igual a 1 na posição correspondente à barra em que a fonte está injetando corrente; se a
fonte não estiver conectada à terra, terá um elemento igual a −1 na posição correspondente à outra barra em que a
3

fonte está conectada, sendo os demais elementos iguais a zero. Os vetores 𝐯 ∈ ℂ𝑛𝑏 e 𝐢 ∈ ℂ(𝑚−𝑛𝑓 ) são compostos
pelas tensões e injeções de correntes nodais, respectivamente.

Resolvendo (1) para 𝐱(𝑠) e substituindo em (2), obtém-se:


𝐲(𝑠) = [𝐂𝑇 𝐘(𝑠)−1 𝐁 + 𝐃] 𝐮(𝑠) (4)
Dessa forma, se conclui que a expressão de uma função de transferência para esta modelagem é dada por:
𝐇(𝑠) = 𝐂𝑇 𝐘(𝑠)−1 𝐁 + 𝐃 (5)
onde 𝐇(𝑠) define a relação entre os vetores de saída 𝐲(𝑠) e de entradas 𝐮(𝑠), podendo representar admitâncias,
impedâncias ou ganhos adimensionais, dependendo das entradas aplicadas e das saídas medidas.

2.1.1 Resposta em Frequência

Considerando apenas uma das variáveis de entrada 𝑢(𝑠) e uma das variáveis de saída 𝑦(𝑠), 𝐇(𝑠) se reduz a uma
FT escalar, dada por:
𝐻(𝑠) = 𝐜 𝑇 𝐘(𝑠)−1 𝐛 + 𝑑 (6)
onde os vetores 𝐛 e 𝐜 são colunas das matrizes 𝐁 e 𝐂, respectivamente, e 𝑑 um elemento da matriz 𝐃.

A resposta em frequência da função de transferência 𝐻 é dada simplesmente pela substituição de 𝑠 por 𝑛ω valores
discretos de 𝑗ω, ou seja:
𝐻(𝑗ω𝑖 ) = 𝐜 𝑇 𝐘(𝑗ω𝑖 )−1 𝐛 + 𝑑 , 𝑖 = 1: 𝑛ω (7)

2.2 Método do Lugar Geométrico

O impacto harmônico da conexão à rede básica do SIN de um novo acessante é avaliado utilizando o equivalente de
Norton da sua rede (rede interna) em paralelo com a admitância da rede básica (rede externa) vistos do PAC,
conforme mostrado na Figura 1. Nesta figura, para uma determinada ordem harmônica ℎ, 𝐼(ℎ) e 𝑌𝑖 (ℎ) denotam,
respectivamente, a corrente e a admitância do equivalente de Norton da rede interna, enquanto 𝑌𝑒 (ℎ) a admitância
equivalente da rede externa. É importante notar que as admitâncias equivalentes podem ser calculadas a partir dos
dados das redes, enquanto os valores de 𝐼(ℎ) são calculados com base em medições nos terminais dos
equipamentos não lineares (p. ex. conversores de parques eólicos e solares) fornecidas pelos fabricantes na etapa
pré-operacional do estudo de acesso, ou medidas pelo acessante na etapa operacional do estudo.

PAC
Rede Interna Rede Externa

Yi (h) I(h) Ye (h)

Figura 1: Circuito equivalente para avaliação do impacto harmônico devido à conexão de um novo acessante

A Distorção Harmônica Individual de tensão (DHI) no PAC, utilizada para avaliar o impacto de um novo acessante
para cada harmônico ℎ de interesse (do 2º ao 50º), é dada por:
𝐼(ℎ)
𝐷𝐻𝐼(ℎ) = | | × 100 % (8)
𝑌(ℎ)
onde 𝑌(ℎ) = 𝑌𝑒 (ℎ) + 𝑌𝑖 (ℎ) é a admitância equivalente do paralelo entre 𝑌𝑒 (ℎ) e 𝑌𝑖 (ℎ). Em (8), tanto 𝑌(ℎ) quanto
𝐼(ℎ) estão em pu.

Uma vez que a vida útil das instalações é superior a duas décadas, é preciso considerar, nos estudos de acesso, as
possíveis variações das admitâncias harmônicas do SIN, vistas do PAC, ao longo do tempo, objetivando encontrar
os valores máximos de DHI. Note que, para isso, deve-se considerar valores máximos de 𝐼(ℎ) e valores mínimos de
𝑌(ℎ). Uma vez que se pode considerar 𝑌𝑖 (ℎ) constante, deve-se encontrar o valor de 𝑌𝑒 (ℎ) que minimiza 𝑌(ℎ).

Para isso, o MLG é recomendado pelo Operador Nacional do Sistema (ONS) na Nota Técnica 009/2016 rev. 2 [1]
para os estudos de impacto harmônico de novos acessantes à Rede Básica que possuam cargas não lineares
4

significativas ou usinas com geração via inversores (parques eólicos e solares). Este método tem como objetivo
encontrar a menor admitância possível, vista do PAC, para cada frequência harmônica de interesse levando em
consideração diversos cenários e condições operativas para a rede externa.

Desta forma, para o traçado dos Lugares Geométricos (LGs) de admitâncias do SIN vistas do PAC, que são
envoltórias das nuvens de pontos de admitâncias no plano condutância × susceptância (𝐺 × 𝐵), com o formato de
setores circulares ou de polígonos de 𝑛 lados [10], deve-se utilizar todos os cenários do Plano de Ampliações e
Reforços (PAR) mais recente, a partir do ano de entrada do empreendimento, considerando os patamares de carga
leve, média e pesada. Nesta análise, além da rede integra de cada cenário nos diferentes patamares de carga, deve-
se contingenciar todos os componentes do sistema até a terceira vizinhança do PAC (critério 𝑁 − 1). Finalmente,
para o traçado do LG com formato de polígono de 𝑛 lados para a frequência harmônica 𝑓ℎ , deve-se considerar o
intervalo de 𝑓ℎ − 0.5𝑓0 até 𝑓ℎ + 0.5𝑓0 com passo Δ𝑓ℎ = 6 Hz, sendo 𝑓0 a frequência fundamental (60 Hz). No caso
do setor circular se considera o intervalo de 𝑓ℎ − 𝑓0 até 𝑓ℎ + 𝑓0 com passo Δ𝑓ℎ = 60 Hz (3 valores de admitância).

O valor mínimo 𝑌𝑚𝑖𝑛 (ℎ) de 𝑌(ℎ) pode ser determinado geometricamente no plano 𝐺 × 𝐵 como a menor distância
do extremo do fasor −𝑌𝑖 (ℎ) ao LG de admitâncias harmônicas da rede externa. O cruzamento de 𝑌𝑚𝑖𝑛 (ℎ) com o LG
determina 𝑌𝑒,𝑚𝑖𝑛 (ℎ) (valor de 𝑌𝑒 (ℎ) que minimiza 𝑌(ℎ)). Note que os vetores das admitâncias 𝑌𝑚𝑖𝑛 (ℎ) e 𝑌𝑒,𝑚𝑖𝑛 (ℎ)
são perpendiculares. Estes fasores de admitâncias estão mostrados na Figura 2 considerando o setor circular.

B (h)

Ye,min G (h)
Yi Y
min

Figura 2: Ilustração gráfica do método do LG considerando o setor circular

O cálculo de cada uma destas admitâncias é feito pela inversão da correspondente impedância própria da rede
externa vista do PAC. Portanto, este cálculo é naturalmente visto como uma sucessão de RFs de impedância dentro
do intervalo de frequências de 120 Hz a 3000 Hz com passo de 6 Hz. Note que o HarmZs utiliza o passo de 6 Hz
para oferecer ao usuário a opção de verificar os cálculos de distorções máximas de tensão considerando uma ou
ambas as formas de envoltória (setores circulares e/ou polígonos de 𝑛 lados). Desta forma, para o traçado dos
polígonos de 𝑛 lados, são utilizando todos os pontos de admitância calculados. Por outro lado, para o traçado dos
setores circulares, os pontos são selecionados de 10 em 10 (pontos de admitância calculados nas frequências
múltiplas de 60 Hz). Deve-se se observar que além destas formas de seleção dos pontos de admitância para traçado
dos LGs, definidas nos PR, outras opções são oferecidas no HarmZs [11].

2.2.1 Eficiência Computacional do MLG

De todas as etapas do estudo de acesso, o cálculo das admitâncias harmônicas da rede externa vistas do PAC, para
traçado dos LGs no plano 𝐺 × 𝐵, é a que mais consome tempo computacional devido à grande quantidade de casos
estudados e às operações matriciais necessárias para o cálculo das sucessivas RFs.

O HarmZs possui duas abordagens para realização destes cálculos. Na forma tradicional, para cada cenário, fixa-se
uma topologia (sistema íntegro ou com contingência) para o SIN e calcula-se a RF da impedância própria vista do
PAC. Terminada a RF para uma topologia, seleciona-se outra e repete-se o procedimento. Na segunda forma,
proposta em [2] e nomeada de método Turbo, para cada cenário, fixa-se uma frequência harmônica e varia-se a
topologia do SIN. Terminada toda a lista de contingências (topologias), incluindo o sistema íntegro, muda-se a
frequência harmônica e repete-se o procedimento.

A vantagem do método Turbo é permitir a extensão da metodologia apresentada em [12], originalmente desenvolvida
para a consideração de contingências em estudos de sistemas de potências à frequência fundamental (fluxo de
potência e curto-circuito), para estudos de comportamento harmônico. Essa generalização evita a necessidade de
remontagem e refatoração 𝐋𝐔 da matriz 𝐘 para cada contingência do sistema que está sendo estudado, tornando o
método Turbo dezenas de vezes mais rápido computacionalmente do que o tradicional. Em testes realizados em
estudos de acesso ao SIN, conseguiu-se uma redução do tempo computacional em torno de 9 vezes se comparado
com o método tradicional. Maiores detalhes deste método de alto desempenho computacional pode ser visto em [2]
e sobre o MLG em [1] e [10].
5

3.0 PARALELIZAÇÃO UTILIZANDO OPENMP

O OpenMP é uma API que fornece um método para a paralelização por meio do uso de threads. Ele é particularmente
útil, pois fornece extensões para linguagens de programação populares na área de engenharia como C, C++ e
Fortran. No contexto do OpenMP, a paralelização é alcançada por meio de diretivas, que são instruções especiais
inseridas diretamente no código fonte para controlar o comportamento paralelo. No C++, por exemplo, essas diretivas
são geralmente iniciadas com a declaração “#pragma omp”.

A diretiva fundamental do OpenMP é “#pragma omp parallel”, que é responsável por estabelecer uma região de
execução paralela, como exemplificado na Figura 3.

A Figura 4 ilustra uma possível progressão do programa quando se utiliza duas threads. O segmento que apresenta
hachuras indica uma ausência de thread naquele intervalo específico, o que significa que a thread ou ainda não foi
criada ou já foi eliminada. Por outro lado, a área demarcada em cinza simboliza uma condição em que a thread está
em um estado de espera.

1 a()
2 #pragma omp parallel
3 {
4 b()
5 c()
6 }
7 d()
Figura 3 – OpenMP: exemplo de diretiva parallel() Figura 4 – Exemplo de linha do tempo da diretiva
parallel() do OpenMP

Observa-se que, inicialmente, existe apenas a thread 1, que está executando a função a(). Conforme o programa
avança, a thread 1 ingressa na região paralela, o que resulta na criação da thread 2. Ambas as threads, então,
executam a função b() e, subsequentemente, a função c().

A thread 1, sendo mais rápida, chega antes ao fim da região paralela. Entretanto, o OpenMP adota a sincronização
como padrão, o que significa que a execução do programa somente prossegue quando todas as threads terminarem
o trabalho designado a elas na região paralela. Este comportamento faz com que o término de uma região paralela
atue como uma barreira. Como resultado, a thread 1 entra em estado de espera (área cinza na Figura 2), não
executando nenhuma atividade por determinado período.

Finalmente, quando a thread 2 também alcança o fim da região paralela, ela é destruída e a thread 1 prossegue com
a execução da função d().

No entanto, realizar o mesmo trabalho múltiplas vezes em paralelo não é o usual. Em vez disso, busca-se paralelizar
uma tarefa específica, distribuindo a carga de trabalho entre as threads. O OpenMP possui uma diretiva para esta
finalidade, que é “#pragma omp for”. A Figura 5 apresenta um exemplo de como isso pode ser realizado e a Figura
6 apresenta uma possibilidade para a evolução do programa valendo-se de 4 threads e com o objetivo de se
paralelizar 10 atividades que possuem esforços computacionais diferentes.

1 a()
2 #pragma omp parallel
3 {
4 #pragma omp for
5 for (int i = 0; i < 10; ++i){
6 b();
7 }
8 }
9 c()
Figura 5 – OpenMP: exemplo de diretiva for() Figura 6 – Exemplo de linha do tempo da diretiva for()
do OpenMP

Este exemplo destaca um desafio inerente à paralelização, uma vez que resulta em uma distribuição desigual de
tarefas, com as duas primeiras threads recebendo uma tarefa extra em comparação às outras. Além disso, a thread
2 foi encarregada da tarefa b(3), particularmente pesada. Como resultado, as outras três threads finalizaram suas
atividades mais cedo e tiveram que aguardar por um período considerável até que a thread 2 completasse sua tarefa.

O código apresentado na Figura 5 pode ser reescrito de maneira mais concisa, porém equivalente, usando a diretiva
“#pragma omp parallel for”, como demonstrado na Figura 7.
6

1 foo()
2 #pragma omp parallel for
3 {
4 for (int i = 0; i < 10; ++i){
5 b();
6 }
7 }
8 c()
Figura 7 – OpenMP: exemplo de diretiva parallel for

3.1 Implementações iniciais realizadas

Os conceitos apresentados nesta seção foram aplicados nos códigos das ferramentas de RF e do MLG do programa
HarmZs. Em ambas as ferramentas, a separação de atividades foi feita considerando apenas as frequências de
interesse. Ou seja, o usuário fornece uma faixa de frequências de interesse e, com base nisso, cada uma das threads
recebe determinadas frequências em que serão responsáveis por realizar todos os cálculos.

Essa escolha foi feita devido ao fato de que, em ambas as ferramentas, os cálculos realizados em cada frequência
são independentes uns dos outros. Assim, essa é uma escolha natural.

Para a RF e, consequentemente, para o MLG que a utiliza, ainda poderia ser feita a escolha de paralelizar as
bibliotecas de cálculos matriciais e de resolução de sistemas lineares. No entanto, seria uma solução mais complexa,
onde o custo-benefício entre a melhoria do desempenho computacional e o esforço para a sua implementação não
valeria a pena.

Para o MLG, ainda existe uma terceira alternativa de paralelização que é fazer a separação das atividades pelos
cenários, sendo cada thread responsável por resolver a rede íntegra e suas contingências para todas as frequências
de interesse. Essa opção pode ser interessante devido ao fato de que, na prática, existem mais topologias (redes
íntegras e com contingências) a serem consideradas do que frequências de interesse. Assim, da forma que foi
implementada, talvez esteja ocorrendo uma distribuição desigual das tarefas e essa terceira abordagem poderia
evitar esse problema. Portanto, essa é uma opção que será futuramente avaliada para verificar se, de fato, é mais
rápida do que a implementação inicial.

4.0 TESTES E RESULTADOS

O desempenho computacional da metodologia proposta foi comparado com o da metodologia anterior (sem a
paralelização) em três computadores diferentes: dois desktops, um de configuração Intel Core i5-6500 3.2 GHz com
8 Gb de memória RAM e o outro com AMD Ryzen 5-2600 3.4 GHz com 40 Gb de RAM, e um notebook com
processador Intel Core i7-10750H 2.6 GHz e 16 Gb de RAM.

4.1 Sistema Teste

O sistema teste utilizado foi o SIN, considerando diversos cenários e condições operativas, cujo diagrama unifilar ao
redor do PAC (subestação de Xingu - barra 10008) está mostrado na Figura 8.

Figura 8 – Diagrama unifilar do sistema teste ao redor do PAC (barra 10008)


7

Os arquivos de fluxo de potência utilizados são referentes ao plano decenal 2023 da EPE e compreendem os anos
2019-2020 a 2022-2023 nos casos base norte exportador, norte importador e intercâmbio zero, com patamares de
carga leve e pesada.

A partir dos 3 casos base, foram gerados 32 cenários considerando diferentes patamares de carga e despachos das
usinas de Tucuruí, Belo Monte e São Luiz do Tapajós. A Tabela 1 mostra as configurações de cada um dos cenários.

Tabela 1 – Configuração dos casos base de fluxo de potência


Nº máquinas Nº máquinas
Ano Intercâmbio Carga Belo S.L. do Cenário Ano Intercâmbio Carga Belo S.L. do Cenário
Tucuruí Tucuruí
Monte Tapajós Monte Tapajós
23 18 0 1 23 18 0 17
Norte Exportador Leve 23 14 0 2 Norte Exportador Pesada 23 14 0 18
18 18 0 3 18 18 0 19
2019- 13 9 0 4 2019- 13 9 0 20
Zero Leve Zero Pesada
2020 13 7 0 5 2020 13 7 0 21
7 3 0 6 7 3 0 22
Norte Importador Leve 11 3 0 7 Norte Importador Pesada 11 3 0 23
7 7 0 8 7 7 0 24
23 18 36 9 23 18 36 25
Norte Exportador Leve 23 14 36 10 Norte Exportador Pesada 23 14 36 26
18 18 28 11 2022- 18 18 28 27

2022- 12 9 18 12 2023 7 3 4 30
Zero Leve
2023 12 5 18 13 Norte Importador Pesada 11 3 18 31
7 3 4 14 7 7 4 32
Norte Importador Leve 11 3 18 15
7 7 4 16

4.2 Desempenho da Implementação Paralela da RF

Para os testes realizados com a RF, foi considerado o cenário 32 da Tabela 1. Foi calculada a impedância própria
do SIN vista do PAC sem e com a paralelização variando o número de threads utilizado. A implementação feita no
HarmZs indica, por padrão, um número de threads com base no processador do usuário, mas também permite que
ele escolha o número que deseja utilizar. Caso o usuário escolha um número de threads maior do que a quantidade
de núcleos que o processador tem, o OpenMP alocará mais de uma thread num mesmo núcleo.

A Tabela 2 mostra os tempos computacionais de cada um dos testes com suas respectivas relações de velocidade
entre as implementações paralela e sequencial entre parênteses. Nela é possível ver que a paralelização consegue
deixar o cálculo mais rápido numa relação de 1.87 à 7.77 vezes, dependendo do tipo de processador e do número
de threads. Nessa tabela, também é possível observar que o processador da AMD, sem paralelização, é o que
demora mais tempo para executar a RF, entretanto é o que mais aproveita a paralelização quando comparado com
os processadores da INTEL.

Por fim, observa-se que, uma vez que cada processador tem uma quantidade finita de núcleos, aumentar
ilimitadamente o número de threads não é necessariamente melhor. Percebe-se uma tendencia de crescimento da
relação de velocidade até se chegar ao número de threads igual ao número de núcleos lógicos do processador e, a
partir deste ponto, há uma “saturação” do desempenho computacional. Para o caso do primeiro Desktop, que é o
que possui o menor número de núcleos (igual à 4), houve uma pequena redução da relação de velocidade a partir
no número de threads igual à 6, já na região de saturação.

Tabela 2 – Comparações de tempo de CPU para o cálculo da RF com e sem paralelização.


Tempo de CPU (s)
Núcleos / Memória
Sistema
Tipo Processador Núcleos RAM Sem 2 4 6 8 12 16 32
Operacional
Lógicos (Gb) Paralelização Threads Threads Threads Threads Threads Threads Threads

Intel Core i5- Windows 10


Desktop 4/4 8.00 264.92 141.6(1.87) 76.0(3.49) 72.4(3.66) 73.9(3.59) 73.0(3.63) 73.4(3.61) 75.1(3.53)
6500 3.2 GHz 64 bits
AMD Ryzen 5- Windows 11
Desktop 6/12 40.00 379.35 208.8(1.82)114.8(3.31) 79.4(4.78) 64.6(5.87) 50.4(7.53) 49.0(7.74) 48.8(7.77)
2600 3.4 GHz Pro 64 bits
Intel Core i7- Windows 11
Notebook 6/12 16.00 197.31 100.9(1.96) 55.9(3.53) 43.2(4.57) 40.7(4.85) 36.3(5.44) 35.6(5.54) 35.4(5.57)
10750H 2.6 GHz Pro 64 bits

Também foi testado se houve alteração entre os valores das curvas de RF calculadas com e sem a programação
paralela, verificando-se um erro de 0%.
8

4.3 Desempenho do Processamento Paralelo do MLG

Para as comparações feitas com o MLG, foram considerados 32 redes íntegras onde, ao aplicarem as contingências
até a terceira vizinhança do PAC, foram geradas 2397 redes contingenciadas, totalizando 2429 topologias.
Considerou-se a faixa de frequências de 120 a 3000 Hz com passo de 6 Hz, totalizando 481 frequências de interesse.
Desta forma, foram calculadas 2429 x 481 = 1 168 349 admitâncias.

Foram comparados os tempos de CPU do MLG utilizando o método Turbo sem e com a paralelização variando o
número de threads. A Tabela 3 indica os resultados obtidos, mostrando, entre parêntese, as relações de velocidade
entre as implementações paralela e sequencial.

Tabela 3 – Comparações de tempo de CPU o traçado do MLG com e sem paralelização.


Tempo de CPU (min)
Núcleos / Memória
Sistema
Tipo Processador Núcleos RAM Sem 2 4 6 8 12 16 32
Operacional
Lógicos (Gb) Paralelização Threads Threads Threads Threads Threads Threads Threads

Intel Core i5- Windows 10


Desktop 4/4 8.00 53.55 31.3(1.71) 20.5(2.62) 20.7(2.59) 21.0(2.55) 20.8(2.58) 21.6(2.48) 24.2(2.22)
6500 3.2 GHz 64 bits
AMD Ryzen 5- Windows 11
Desktop 6/12 40.00 57.29 30.1(1.90) 18.2(3.15) 14.7(3.90) 14.7(3.91) 16.8(3.40) 17.3(3.31) 19.1(3.00)
2600 3.4 GHz Pro 64 bits
Intel Core i7- Windows 11
Notebook 6/12 16.00 40.19 21.9(1.84) 13.2(3.04) 11.4(3.54) 11.4(3.53) 13.3(3.01) 14.0(2.88) 14.9(2.70)
10750H 2.6 GHz Pro 64 bits

Assim como para a RF, também foi testado se houve alteração entre os valores calculados com e sem a programação
paralela, verificando-se um erro de 0%.

Novamente, se observa que os processadores da INTEL são mais eficientes quando se utiliza o método sem
paralelização, entretanto o processador da AMD consegue tirar maior proveito dos cálculos paralelos.

Diferente do que aconteceu nos resultados obtidos para a RF, observa-se relações de velocidade crescentes até se
obter um número de threads igual ao número de núcleos físicos de cada processador. Após isso, há uma pequena
“saturação” dessa relação, seguida de sua redução, mostrando que existe uma perda de eficiência no acréscimo do
número de threads para quantidades superiores ao número de núcleos do processador.

Esse comportamento pode estar relacionado com o problema intrínseco da paralelização comentado na seção 3.0,
onde, com o aumento do número de threads, ocorre uma distribuição desigual de atividades para cada núcleo.

Um outro ponto que também pode estar relacionado a esse problema é a abordagem da implementação feita
inicialmente. Escolheu-se, nesse primeiro momento, fazer a divisão de atividades por núcleo com base nas
frequências. Entretanto, há muito mais topologias (2429) do que frequências de interesse (481). Como com o
aumento de threads, para quantidades maiores do que o número de núcleos físicos, há uma alocação de mais de
uma por núcleo, pode ser que com essa abordagem esteja acontecendo, também, uma maior sobrecarga de alguns
núcleos.

5.0 CONCLUSÕES

Neste IT, foi mostrada a implementação inicial feita no programa HarmZs do CEPEL para a inclusão de programação
paralela nas ferramentas de RF e do MLG utilizando a API OpenMP.

A implementação se mostrou bastante eficiente. Foi testada em três computadores distintos, com processadores
diferentes e de fabricantes diferentes (INTEL e AMD). Nos testes realizados, o número de threads foi variado para
se analisar qual seria a melhor quantidade alocada para os cálculos. Pode-se concluir que, embora essa quantidade
ótima possa variar muito entre as ferramentas testadas, pode-se considerar um número seguro de utilização de
threads igual ao de núcleos físicos.

Em relação à melhoria dos tempos computacionais, foi observado que o processador da AMD, em comparação aos
da INTEL, consegue ter melhores resultados com o uso da paralelização, embora tenha o pior desempenho sem o
processamento paralelo. Este processador obteve ganhos que variaram de 1.82 até 7.7 vezes para a RF e de 1.9
até 3.91 para o MLG. Para os processadores da INTEL, os ganhos variaram entre 1.87 até 5.57 vezes para a RF e
de 1.71 até 3.54 vezes para o MLG.

Salienta-se que estas implementações iniciais objetivaram realizar a prova de conceito da eficiência da programação
paralela. Futuramente, será disponibilizada no programa comercial a opção de utilizar este tipo de programação,
tanto para as funções mostradas aqui quanto para as demais que o programa possui propícias a esta abordagem.
9

6.0 REFERÊNCIAS

[1] ONS - Operador Nacional do Sistema, “Instruções para Realização de Estudos e Medições de QEE Relacionados aos Acessos à
Rede Básica ou aos Barramentos de Fronteira com a Rede Básica para Parques Eólicos, Solares, Consumidores Livres e
Distribuidoras - REV. 03,” Rio de Janeiro, RJ, 2019.
[2] S. L. Varricchio, C. O. Costa e F. C. Veliz, “Método de Alto Desempenho Computacional para Estudos de Impacto Harmônico de Novos
Acessantes à Rede Básica,” em XXIII SNPTEE - Seminário Nacional de Produção e Transmissão de Energia Elétrica, Foz do Iguaçu,
PR, 2015.
[3] Y. He, A. E. oniges e T. G. Mattson, The OpenMP Common Core: Making OpenMP Simple Again, Estados Unidos da America: MIT
Press, 2019.
[4] OpenMP Architecture Review Board, “OpenMP,” [Online]. Available: https://www.openmp.org. [Acesso em 2023].
[5] S. L. Varricchio, “Modelagem e Análise de Redes Elétricas e Métodos de Redução da Ordem de Modelos Dinâmicos de Baixa e Alta
Frequência,” Tese de Doutorado em Engenharia Elétrica pela UNB, Brasilia, Dezembro, 2015.
[6] T. M. Campello, S. L. Varricchio e G. N. Taranto, “Three-Phase Frequency-Dependent Network Equivalents in the ATP for Lumped
Parameter Systems Using Descriptor Formulation, Rational Models, and Symmetrical Component Data,” Journal of Control, Automation
and Electrical Systems, vol. 32, pp. 1690-1703, 2021.
[7] T. M. Campello, S. L. Varricchio and G. N. Taranto, "Representation of Multiport Rational Models in an Electromagnetic Transients
Program: Networks with Lumped and Distributed Parameters," Electric Power Systems Research, vol. 178, pp. 1-12, 2020.
[8] S. L. Varricchio and S. Gomes Jr., "Electrical Network Dynamic Models with Application to Modal Analysis of Harmonics," Eletric Power
Systems Research, vol. 154, pp. 433-443, 2018.
[9] S. L. Varricchio, S. Gomes Jr. and R. D. Rangel, "Three Winding Transformer s-Domain Model for Modal Analysis of Electrical
Networks," Electrical Power and Energy Systems, vol. 33, pp. 420-429, 2011.
[10] F. C. Veliz, S. L. Varricchio e C. O. Costa, “Metodologia para a Representação de Redes Elétricas por Polígonos de Admitâncias para
Estudos de Impacto Harmônico,” em XXII Seminário Nacional de Produção e Transmissão de Energia Elétrica - SNPTEE, Brasília, DF
, 2013.
[11] C. O. Costa, S. L. Varricchio, F. C. Véliz e F. A. Oliveira, “Desenvolvimento de Funcionalidades Computacionais para Atendimento dos
Novos Procedimentos de Rede para Estudos de Desempenho Harmônico,” em XXIV SNPTEE - Seminário Nacional de Produção e
Transmissão de Energia Elétrica, Curitiba, PR, 2017.
[12] O. Alsac, B. Stott e W. F. Tinney, “Sparsity-Oriented Compensation Methods for Modified Network Solutions,” IEEE Transactions on
Power Apparatus and Systems, vol. PAS 102, nº 5, pp. 1050 - 1060, 1983.

DADOS BIOGRÁFICOS
THOMAS MOREIRA CAMPELLO possui graduação (2016) e mestrado (2018) em Engenharia Elétrica com
ênfase em Sistemas de Potência pela Universidade Federal Fluminense (UFF) e pela Universidade Federal
do Rio de Janeiro (COPPE/UFRJ), respectivamente. Atualmente é doutorando pela COPPE/UFRJ na
mesma área. Outrossim, figura como pesquisador no Centro de Pesquisa de Energia Elétrica (CEPEL),
onde atua na equipe de desenvolvimento do programa HarmZs para estudos de comportamento harmônico
e análise modal de redes elétricas, largamente utilizado no setor elétrico brasileiro e no projeto ModPol,
que tem o objetivo de modernização dos programas computacionais de planejamento e operação elétricos.

(2) THIAGO JOSÉ BARBOSA DA ROCHA graduou-se em Engenharia Elétrica em 2015 pela Universidade
Federal Fluminense (UFF). Possui Mestrado em Engenharia Elétrica e de Telecomunicações pela UFF e
atualmente é doutorando na mesma instituição. Trabalha no Centro de Pesquisas de Energia Elétrica
(CEPEL). Tem experiência na área de Sistemas Elétricos de Potência, com ênfase em: dinâmica e controle,
transitórios eletromagnéticos e programação e processamento paralelo aplicados. Faz parte da equipe de
desenvolvimento do AnaHVDC, programa para solução de múltiplos elos HVDC, com foco no Sistema
Interligado Nacional (SIN).

(3) SERGIO LUIS VARRICCHIO possui graduação (1987), mestrado (1994) e doutorado (2015) em
Engenharia Elétrica pela Universidade Católica de Petrópolis (UCP), Universidade Federal do Rio de
Janeiro (UFRJ) e Universidade de Brasília (UnB), respectivamente. De 1987 a 1989 trabalhou na consultora
Fluxo Engenharia, projetando sistemas de aterramento. De 1988 a 1989 e de 1998 a 1999 foi docente em
Teoria Eletromagnética na UCP. Desde 1989 trabalha no CEPEL como pesquisador e gerente de projetos,
tendo sido o idealizador do programa HarmZs, largamente utilizado no setor elétrico. Seus interesses
incluem qualidade de energia, transitórios eletromagnéticos e redução da ordem de modelos.

(4) CRISTIANO DE OLIVEIRA COSTA recebeu o grau de Engenheiro Eletricista pela Universidade Federal
de Juiz de Fora em 2002. Em 2013 obteve o seu mestrado pela Universidade Federal do Rio de Janeiro.
Trabalha no CEPEL – Centro de Pesquisas de Energia Elétrica desde 2002, onde atua como pesquisador
na equipe de desenvolvimento do programa HarmZs, para estudos de comportamento harmônico e análise
modal de redes elétricas. Suas áreas de interesse são qualidade de energia e transitórios eletromagnéticos.

Você também pode gostar