{"id":117,"date":"2025-03-06T15:46:53","date_gmt":"2025-03-06T18:46:53","guid":{"rendered":"https:\/\/idric.ic.unicamp.br\/?page_id=117"},"modified":"2025-03-06T15:46:53","modified_gmt":"2025-03-06T18:46:53","slug":"inteligencia-artificial-em-redes-programaveis","status":"publish","type":"page","link":"https:\/\/idric.ic.unicamp.br\/index.php\/inteligencia-artificial-em-redes-programaveis\/","title":{"rendered":"Intelig\u00eancia Artificial em Redes Program\u00e1veis"},"content":{"rendered":"\n<p>A linha tem\u00e1tica&nbsp;<strong>Intelig\u00eancia Artificial em Redes Program\u00e1veis<\/strong>&nbsp;visa propor como o plano de dados e seus dispositivos podem ser utilizados para a execu\u00e7\u00e3o de algoritmos de aprendizado de m\u00e1quina. Abaixo s\u00e3o descritas as tarefas envolvidas nessa linha tem\u00e1tica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tarefa-7-mapeamento-de-rnas-na-infraestrutura-subjacente\">Tarefa 7: Mapeamento de RNAs na Infraestrutura Subjacente<\/h3>\n\n\n\n<p>Apesar dos diversos esfor\u00e7os na literatura para operacionalizar mecanismos de intelig\u00eancia em planos de dados, a implementa\u00e7\u00e3o e a opera\u00e7\u00e3o de Redes Neurais Artificais (RNA) ainda est\u00e1 longe de ser uma realidade. Ao operar aplica\u00e7\u00f5es assistidas por redes neurais artificiais diretamente nos planos de dados, \u00e9 poss\u0131\u0301vel se beneficiar do alto desempenho dos dispositivos de encaminhamento para (i) aprender diferentes comportamentos existentes nas infraestruturas de rede enquanto os pacotes s\u00e3o encaminhados, ou seja, sem a sobrecarga de espelhar (parte dos) pacotes da rede para analisadores no plano de controle; (ii) tomar decis\u00f5es em tempo real \u2013 ou seja, a lat\u00eancia do plano de dados \u00e9 na ordem de nanossegundos, enquanto as aplica\u00e7\u00f5es tradicionais (baseadas em aprendizado de m\u00e1quina) operam em uma escala na ordem de milissegundos (ou mesmo segundos); e (iii) reduzir a necessidade de atualizar continuamente os valores nas tabelas de pesquisa, uma vez que as decis\u00f5es ser\u00e3o baseadas no comportamento aprendido.<\/p>\n\n\n\n<p>Apesar dos benef\u0131\u0301cios mencionados, a operacionaliza\u00e7\u00e3o de RNAs, de maneira distribu\u0131\u0301da e escal\u00e1vel, em infraestruturas program\u00e1veis, \u00e9 especialmente desafiadora por dois motivos. Primeiro, as arquiteturas program\u00e1veis existentes ainda s\u00e3o limitadas em rela\u00e7\u00e3o \u00e0s opera\u00e7\u00f5es (por exemplo, opera\u00e7\u00f5es em ponto flutuante e atualiza\u00e7\u00e3o aut\u00f4noma das tabelas de pesquisa), fluxos de controle (por exemplo, estruturas de itera\u00e7\u00e3o) e quantidade de mem\u00f3ria dispon\u0131\u0301vel. Segundo, tecnologias de virtualiza\u00e7\u00e3o de planos de dados ainda s\u00e3o incipientes e pouco eficazes \u2013 o que dificulta a execu\u00e7\u00e3o isolada de m\u00faltiplas aplica\u00e7\u00f5es (por exemplo, m\u00faltiplos neur\u00f4nios ou RNAs sobre um mesmo plano de dados). A aus\u00eancia de solu\u00e7\u00f5es efetivas para virtualiza\u00e7\u00e3o em planos de dados program\u00e1veis imp\u00f5e restri\u00e7\u00f5es quanto \u00e0 orquestra\u00e7\u00e3o dos recursos dispon\u0131\u0301veis na infraestrutura e das pr\u00f3prias RNAs. Existem ainda outros desafios relacionados \u00e0 implementa\u00e7\u00e3o e a operacionaliza\u00e7\u00e3o de RNAs em planos de dados program\u00e1veis. Entre eles, destacam-se tr\u00eas: (i) a implementa\u00e7\u00e3o da l\u00f3gica dos neur\u00f4nios (dadas as limita\u00e7\u00f5es das arquiteturas) e mecanismos para a transmiss\u00e3o e sincroniza\u00e7\u00e3o de dados entre camadas, (ii) o projeto de estrat\u00e9gias algor\u0131\u0301tmicas para a orquestra\u00e7\u00e3o do ciclo de vida de RNAs (por exemplo, aloca\u00e7\u00e3o e realoca\u00e7\u00e3o din\u00e2mica de RNAs) em planos de dados, e (iii) a operacionaliza\u00e7\u00e3o em larga escala desses mecanismos. Pretende-se, nessa tarefa, propor solu\u00e7\u00f5es para esses tr\u00eas desafios.<\/p>\n\n\n\n<p>Luizelli et al. foram os primeiros a definir os requisitos e desafios para a implanta\u00e7\u00e3o de redes neurais artificiais de forma distribu\u0131\u0301da no plano de dados, entre os quais a necessidade de mapeamento de RNAs na infraestrutura subjacente. Em paralelo, Saquetti et al. propuseram a primeira rede neural artificial executando de forma distribu\u0131\u0301da no plano de dados. Apesar de demonstrar a viabilidade t\u00e9cnica de se executar RNAs diretamente no plano de dados, os autores fizeram um mapeamento manual de neur\u00f4nios na infraestrutura subjacente, sem um mecanismo que possa definir de forma automatizada tal mapeamento.<\/p>\n\n\n\n<p>O objetivo de pesquisa desta tarefa \u00e9 a formaliza\u00e7\u00e3o te\u00f3rica e avalia\u00e7\u00e3o de problemas de otimiza\u00e7\u00e3o relacionados com a orquestra\u00e7\u00e3o de RNAs em planos de dados program\u00e1veis. A orquestra\u00e7\u00e3o compreende os procedimentos necess\u00e1rios \u00e0 opera\u00e7\u00e3o, incluindo o mapeamento de RNAs para as infraestruturas program\u00e1veis e poss\u0131\u0301veis opera\u00e7\u00f5es durante o ciclo de vida das mesmas (por exemplo, a migra\u00e7\u00e3o de neur\u00f4nios frente a novas demandas). O plano para desenvolvimento da tarefa compreende a modelagem, a partir de t\u00e9cnicas como Programa\u00e7\u00e3o Linear Inteira, e avaliados de maneira \u00f3tima. A avalia\u00e7\u00e3o de solu\u00e7\u00f5es \u00f3timas objetiva (i) estabelecer um limitante superior\/inferior (upperbound\/lowerbound) para o problema e (ii) entender as caracter\u0131\u0301sticas gerais das solu\u00e7\u00f5es. Considerando a natureza j\u00e1 NP-Dif\u0131\u0301cil de partes dos problemas relacionados com a opera\u00e7\u00e3o de RNAs (por exemplo, o mapeamento), ela torna-se ainda mais complicada quando da necessidade de conferir aos modelos a capacidade de lidar com ambientes muito din\u00e2micos, exigindo, por exemplo, o rearranjo peri\u00f3dico de neur\u00f4nios. Tal \u00e9 indispens\u00e1vel para agilizar a din\u00e2mica de m\u00faltiplas RNAs em PDPs. A avalia\u00e7\u00e3o da proposta ser\u00e1 feita por meio de simula\u00e7\u00f5es e emula\u00e7\u00f5es, al\u00e9m de modelagem anal\u0131\u0301tica e resolu\u00e7\u00e3o dos modelos usando, por exemplo, CPLEX.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tarefa-8-cria\u00e7\u00e3o-de-redes-neurais-artificiais-para-o-plano-de-dados\">Tarefa 8: Cria\u00e7\u00e3o de Redes Neurais Artificiais para o Plano de Dados<\/h3>\n\n\n\n<p>A materializa\u00e7\u00e3o de aplica\u00e7\u00f5es inteligentes executando diretamente no plano de dados passa pela necessidade de se desenvolver uma linguagem de dom\u0131\u0301nio espec\u0131\u0301fico (domain-specific language, DSL) que permita criar e instanciar RNAs, bem como apoiar o treinamento das mesmas, assim como o TensorFlow permite a constru\u00e7\u00e3o de aplica\u00e7\u00f5es inteligentes usando APIs em Python e C, entre outras. Uma DSL para a cria\u00e7\u00e3o de aplica\u00e7\u00f5es inteligentes deve oferecer abstra\u00e7\u00f5es para (i) cria\u00e7\u00e3o de neur\u00f4nios ou perceptrons, pela defini\u00e7\u00e3o de fun\u00e7\u00f5es n\u00e3o-lineares de ativa\u00e7\u00e3o ou de transfer\u00eancia, (ii) configura\u00e7\u00e3o das camadas de neur\u00f4nios e do encadeamento entre as camadas (perceptron multicamadas) e (iii) defini\u00e7\u00e3o de rotinas de treinamento da rede neural [132]. Esta \u00faltima pode incluir, por exemplo, fun\u00e7\u00f5es de perda para avaliar a acur\u00e1cia da rede neural artificial durante o treinamento, retro-propaga\u00e7\u00e3o dos erros, aprendizado de caracter\u0131\u0301sticas (feature learning) e otimizadores do processo de aprendizado em um ambiente distribu\u0131\u0301do. As abstra\u00e7\u00f5es, por sua vez, devem se apoiar naquelas oferecidas pelas linguagens como POF e P4, para permitir a comunica\u00e7\u00e3o entre neur\u00f4nios executando em diferentes dispositivos na rede.<\/p>\n\n\n\n<p>O provisionamento dessas abstra\u00e7\u00f5es para programa\u00e7\u00e3o de aplica\u00e7\u00f5es inteligentes requer que sejam abordadas as limita\u00e7\u00f5es das DSLs para PDPs. Por exemplo, a cria\u00e7\u00e3o de neur\u00f4nios ou perceptrons requer lidar com combinadores lineares e limiares de ativa\u00e7\u00e3o, c\u00e1lculos de gradientes durante a retro-propaga\u00e7\u00e3o de erros, etc. Essas a\u00e7\u00f5es, por sua vez, podem envolvem opera\u00e7\u00f5es de ponto flutuante e mesmo convolu\u00e7\u00f5es, as quais n\u00e3o s\u00e3o suportadas em P4 ou NPL, principais linguagens existentes para planos de dados program\u00e1veis. Al\u00e9m disso, a materializa\u00e7\u00e3o da capacidade de aprendizado da rede requer que a aplica\u00e7\u00e3o inteligente possa incluir (ou remover), de forma aut\u00f4noma, a\u00e7\u00f5es a serem executadas em resposta a determinados est\u0131\u0301mulos observados na rede. Atualmente, a defini\u00e7\u00e3o dessas a\u00e7\u00f5es requer interven\u00e7\u00e3o direta do plano de controle, uma vez que as DSLs para o plano de dados n\u00e3o permitem alterar dinamicamente as tabelas de encaminhamento no pipeline de switches program\u00e1veis.<\/p>\n\n\n\n<p>A r\u00e1pida ado\u00e7\u00e3o de planos de dados program\u00e1veis pela academia e ind\u00fastria tem sido fomentada principalmente pela flexibilidade de DSLs como POF, P4, NPL e Lyra, as quais permitem o r\u00e1pido desenvolvimento de fun\u00e7\u00f5es de rede customizadas para o plano de dados. Essas linguagens s\u00e3o usadas para programa\u00e7\u00e3o de switches independentes de protocolo (Protocol Independent Switch Architecture, PISA), um dos principais pilares da programabilidade do plano de dados. A arquitetura PISA, em conjunto com as lin permitindo que desenvolvedores de rede possam definir a forma como um switch interpreta (via parser) e processa pacotes (via pipeline de unidades match e action). Para esse fim, o desenvolvedor deve especificar um programa, usando uma linguagem de alto n\u0131\u0301vel (como P4), e ent\u00e3o compilar o programa para a plataforma alvo, que pode ser um switch f\u0131\u0301sico (como os switches baseados na linha de chips Intel Tofino), um software switch ou mesmo um FPGA. A comunidade cient\u0131\u0301fica tamb\u00e9m tem pesquisado outras DSLs com propriedades espec\u0131\u0301ficas, como por exemplo o uP4, focada em desenvolvimento modular de programas P4. No entanto, apesar dos avan\u00e7os, ainda n\u00e3o existe na literatura uma linguagem que permita a defini\u00e7\u00e3o de aplica\u00e7\u00f5es inteligentes para planos de dados program\u00e1veis que contemple as abstra\u00e7\u00f5es necess\u00e1rias para o desenvolvimento das mesmas.<\/p>\n\n\n\n<p>No escopo da presente tarefa, prop\u00f5e-se definir uma DSL para aplica\u00e7\u00f5es inteligentes no plano de dados program\u00e1veis. Para a defini\u00e7\u00e3o do arcabou\u00e7o de desenvolvimento de RNAs para redes, prev\u00ea-se como etapas da metodologia 1) Projeto de uma linguagem de dom\u0131\u0301nio-espec\u0131\u0301fico: esta etapa se materializa na necessidade de projetar uma linguagem expressiva o suficiente para descrever as RNAs e seus prop\u00f3sitos espec\u0131\u0301ficos; 2) Implementa\u00e7\u00e3o de mecanismos para a transmiss\u00e3o e a sincroniza\u00e7\u00e3o eficiente entre neur\u00f4nios: considerando as implementa\u00e7\u00f5es distribu\u0131\u0301das de RNAs, a etapa consiste em garantir que as informa\u00e7\u00f5es sejam corretamente processadas (isto \u00e9, mecanismo de sincroniza\u00e7\u00e3o) e que a transmiss\u00e3o entre camadas gere o menor impacto poss\u0131\u0301vel para os demais tr\u00e1fegos (por exemplo, ao se utilizar o princ\u0131\u0301pio de INT; 3) Defini\u00e7\u00e3o de estruturas de dados espec\u0131\u0301ficas para armazenar informa\u00e7\u00f5es em neur\u00f4nios: considerando as limita\u00e7\u00f5es de mem\u00f3ria existentes nos dispositivos (por exemplo, SmartNICs), estruturas de dados como Space Saving (derivadas de Bloom Filters) podem ser utilizadas para armazenar, de maneira eficiente, as informa\u00e7\u00f5es computadas; 4) Implementa\u00e7\u00e3o de estruturas de itera\u00e7\u00e3o: dado que muitas opera\u00e7\u00f5es precisam ser executas iterativamente, a etapa consiste em implementar as opera\u00e7\u00f5es com a m\u0131\u0301nima degrada\u00e7\u00e3o; e 5) Implementa\u00e7\u00e3o de opera\u00e7\u00e3o de m\u00faltiplos neur\u00f4nios em um \u00fanico plano de dados program\u00e1vel: a etapa surge devido \u00e0 necessidade de tecnologias para virtualizar ou para construir aplica\u00e7\u00f5es monol\u0131\u0301ticas compostas pelas l\u00f3gicas de m\u00faltiplos neur\u00f4nios. Para a avalia\u00e7\u00e3o, prev\u00ea-se a utiliza\u00e7\u00e3o de switches em software, como por exemplo o BMv2, SmartNICs program\u00e1veis NVIDIA BlueField-2, Xilinx Alveo SN1000, e switches Edgecore Wedge 100BF-32X. No escopo do presente projeto, pretende-se ainda adquirir servidores com GPUs para treinamento e simula\u00e7\u00e3o\/emula\u00e7\u00e3o de RNAs visando topologias fat-tree de datacenters.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tarefa-9-virtualiza\u00e7\u00e3o-leve-baseada-em-containers-no-plano-de-dados\">Tarefa 9: Virtualiza\u00e7\u00e3o Leve baseada em Containers no Plano de Dados<\/h3>\n\n\n\n<p>Uma limita\u00e7\u00e3o dos atuais dispositivos para planos de dados program\u00e1veis \u00e9 o suporte \u00e0 execu\u00e7\u00e3o de apenas um programa em um dado instante, Nesse contexto, alocar cada neur\u00f4nio que comp\u00f5e a RNA a um dispositivo de rede program\u00e1vel implica em desperd\u0131\u0301cio de recursos, no caso de neur\u00f4nios que requerem uma fra\u00e7\u00e3o m\u0131\u0301nima de recursos do dispositivo de rede (ou do perfil de encaminhamento, no caso de switches program\u00e1veis com suporte a m\u00faltiplos perfis).<\/p>\n\n\n\n<p>Para suprir essa lacuna, algumas solu\u00e7\u00f5es prop\u00f5em a composi\u00e7\u00e3o de diversos programas para planos de dados program\u00e1veis em um \u00fanico programa, ou o uso de programas de prop\u00f3sito geral para emular outros programas para planos de dados program\u00e1veis [58, 169]. Solu\u00e7\u00f5es baseadas na composi\u00e7\u00e3o de programas impedem a aloca\u00e7\u00e3o din\u00e2mica de neur\u00f4nios em planos de dados program\u00e1veis sem interferir na opera\u00e7\u00e3o dos outros neur\u00f4nios que coexistem no mesmo programa composto. Por outro lado, as solu\u00e7\u00f5es baseadas em um programa de prop\u00f3sito geral imp\u00f5em um alto custo em termos de recursos e processamento para a opera\u00e7\u00e3o de m\u00faltiplos neur\u00f4nios, comprometendo assim o desempenho das RNAs.<\/p>\n\n\n\n<p>Na linha de emula\u00e7\u00e3o de switches program\u00e1veis, Hancock e van der Merwe foram os primeiros a propor a ideia de um programa P4 de prop\u00f3sito geral (chamado de Hyper4) que exp\u00f5e um conjunto de tabelas match e actions que podem ser configuradas de modo a emular outros programas P4. No entanto, Hyper4 sofre com a penalidade de desempenho devido \u00e0 emula\u00e7\u00e3o. Al\u00e9m disso, ele exige v\u00e1rias tabelas no programa de prop\u00f3sito geral para emular cada tabela dos programas P4 originais, resultando assim em alto consumo de mem\u00f3ria. Na linha de composi\u00e7\u00e3o de switches, por sua vez, destacam-se iniciativas como P4Visor, Dejavu e P4SC. Essas solu\u00e7\u00f5es para composi\u00e7\u00e3o de programas agregam v\u00e1rios c\u00f3digos P4 em um \u00fanico programa, e otimizam o uso de recursos atrav\u00e9s da fus\u00e3o de funcionalidades similares dos programas originais. No entanto, essas solu\u00e7\u00f5es n\u00e3o oferecem suporte ao isolamento de switches e \u00e0 implanta\u00e7\u00e3o de novas inst\u00e2ncias de switches sem interrup\u00e7\u00f5es \u00e0s inst\u00e2ncias em opera\u00e7\u00e3o. Por fim, trabalhos como VirtP4 e P4VBox prop\u00f5em a execu\u00e7\u00e3o de v\u00e1rias inst\u00e2ncias de switches program\u00e1veis em uma placa NetFPGA, permitindo troca din\u00e2mica de switches no plano de dados. No entanto, essas solu\u00e7\u00f5es n\u00e3o contemplam abstra\u00e7\u00f5es de gerenciamento para controlar as inst\u00e2ncias virtuais, e n\u00e3o oferecem mecanismos para execu\u00e7\u00e3o de switches virtuais com requisitos m\u0131\u0301nimos de mem\u00f3ria.<\/p>\n\n\n\n<p>O foco desse eixo ser\u00e1 a pesquisa de uma arquitetura para a instancia\u00e7\u00e3o de switches virtuais como cont\u00eaineres, similar a ambientes como Mininet e Docker. Nessa arquitetura, os switches virtuais poder\u00e3o compartilhar fun\u00e7\u00f5es em comum, visando a economia de recursos no dispositivo f\u0131\u0301sico. A solu\u00e7\u00e3o de virtualiza\u00e7\u00e3o baseada em containers deve permitir a aloca\u00e7\u00e3o din\u00e2mica de m\u00faltiplos neur\u00f4nios em um mesmo dispositivo f\u0131\u0301sico da infraestrutura de rede subjacente. Os containers, por sua vez, devem possibilitar o compartilhamento de recursos como buffers, filas e portas. Esse compartilhamento pode ser habilitado dependendo se os neur\u00f4nios pertencem ou n\u00e3o a uma mesma RNA (de um mesmo tenant ou de tenants diferentes). Ao se criar um container para cada neur\u00f4nio, e ao se permitir o uso de recursos compartilhados entre m\u00faltiplos containers, minimiza-se a quantidade necess\u00e1ria de recursos por RNA, maximizando, assim, a utilidade dos recursos na infraestrutura de rede e o conjunto de redes neurais artificiais que podem operar em paralelo na rede f\u0131\u0301sica. Em rela\u00e7\u00e3o \u00e0 metodologia de pesquisa, o projeto do ambiente para virtualiza\u00e7\u00e3o leve baseada em cont\u00eaineres dever\u00e1 compreender a defini\u00e7\u00e3o de um substrato para a execu\u00e7\u00e3o de m\u00f3dulos (bytecode) de software em dispositivos program\u00e1veis. O substrato dever\u00e1 oferecer as mesmas abstra\u00e7\u00f5es que aquelas providas pelos dispositivos program\u00e1veis, como, por exemplo, filas de entrada e de sa\u0131\u0301da, e portas virtuais. No entanto, o substrato dever\u00e1 permitir que os m\u00f3dulos possam acessar fun\u00e7\u00f5es compartilhadas (por exemplo, actions e rotinas para o c\u00e1lculo de checksum de pacotes). Por fim, o projeto dever\u00e1 contemplar a especifica\u00e7\u00e3o de abstra\u00e7\u00f5es de recursos compartilhados, que poder\u00e3o ser utilizados pelos m\u00f3dulos executando em cont\u00eaineres. Exemplos incluem buffers, filas de ingresso e egresso de pacotes, portas virtuais, etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tarefa-10-treinamento-eficiente-de-algoritmos-de-aprendizado-de-m\u00e1quina-em-planos-de-dados-program\u00e1veis\">Tarefa 10: Treinamento Eficiente de Algoritmos de Aprendizado de M\u00e1quina em Planos de Dados Program\u00e1veis<\/h3>\n\n\n\n<p>A crescente populariza\u00e7\u00e3o de sistemas de aprendizado de m\u00e1quina (ML) e a quantidade de dados usados para treinar esses modelos t\u00eam demandado cada vez mais poder computacional. A possibilidade de distribuir as tarefas de treinamento entre v\u00e1rios trabalhadores tem sido investigada como forma de superar esses desafios. No ML distribu\u0131\u0301do, v\u00e1rios trabalhadores treinam a mesma inst\u00e2ncia de modelo executando diferentes partes de um conjunto de dados em paralelo. Ap\u00f3s cada trabalhador ter treinado um modelo local, o treinamento distribu\u0131\u0301do passa por uma fase de agrega\u00e7\u00e3o. Alcan\u00e7ar uma agrega\u00e7\u00e3o de alto desempenho \u00e9 essencial para acelerar o processo de treinamento. Abordagens tradicionais para agrega\u00e7\u00e3o consideram o uso de um servidor de par\u00e2metros ou a execu\u00e7\u00e3o de um algoritmo de comunica\u00e7\u00e3o distribu\u0131\u0301da entre os trabalhadores. No entanto, essas abordagens s\u00e3o caras em termos de largura de banda e lat\u00eancia para concluir a agrega\u00e7\u00e3o.<\/p>\n\n\n\n<p>Uma alternativa promissora para acelerar o processo de agrega\u00e7\u00e3o \u00e9 transferi-lo para um hardware de plano de dados program\u00e1vel. Embora trabalhos anteriores tenham proposto o descarregamento da tarefa de treinamento para planos de dados program\u00e1veis, eles geralmente dependem de estrat\u00e9gias s\u0131\u0301ncronas para agrega\u00e7\u00e3o. No entanto, conseguir realizar estrat\u00e9gias de sincroniza\u00e7\u00e3o mais flex\u0131\u0301veis que podem acelerar o treinamento e oferecer alta precis\u00e3o ainda \u00e9 um problema de pesquisa em aberto e o objetivo da presente tarefa. Devido \u00e0s restri\u00e7\u00f5es do modelo de programa\u00e7\u00e3o do switch, \u00e9 necess\u00e1rio manter um baixo uso de mem\u00f3ria e permitir que o controle das barreiras de sincroniza\u00e7\u00e3o seja realizado de maneira leve. Para isso, estruturas de dados otimizadas e algoritmos eficientes s\u00e3o necess\u00e1rios.<\/p>\n\n\n\n<p>Trabalhos recentes na literatura apresentam abordagens para realizar o treinamento de algoritmos de aprendizagem de m\u00e1quina com o aux\u0131\u0301lio de planos de dados program\u00e1veis, tais como SwitchML e ATP. No entanto, solu\u00e7\u00f5es para treinamento distribu\u0131\u0301do n\u00e3o lidam com o problema de stragglers, que s\u00e3o trabalhadores que levam mais tempo para concluir suas tarefas. Como resultado, outros trabalhadores que contribuem para o mesmo trabalho devem esperar pelos retardat\u00e1rios, o que pode atrasar o processo de treinamento e afetar negativamente o tempo de conclus\u00e3o do treinamento. Em sistemas distribu\u0131\u0301dos de larga escala, testes emp\u0131\u0301ricos mostram que mesmo um pequeno n\u00famero de retardat\u00e1rios pode impactar consideravelmente o tempo total necess\u00e1rio para completar um trabalho.<\/p>\n\n\n\n<p>O objetivo dessa tarefa \u00e9 projetar e implementar uma estrat\u00e9gia de sincroniza\u00e7\u00e3o h\u0131\u0301brida descarregando as barreiras l\u00f3gicas de sincroniza\u00e7\u00e3o para o switch que executa a agrega\u00e7\u00e3o. A abordagem deve ser inspirada em trabalhos recentes que adotam a abordagem Stale Synchronous Parallel, por\u00e9m realizando esse controle inteiramente no plano de dados. A solu\u00e7\u00e3o visa definir controles no switch respons\u00e1vel por agregar os gradientes, de forma a garantir que todos os trabalhadores permane\u00e7am dentro de uma janela de treinamento, que \u00e9 um par\u00e2metro que define a diferen\u00e7a m\u00e1xima (em itera\u00e7\u00f5es de treinamento) entre os trabalhadores mais r\u00e1pidos e os mais lentos. Para a avalia\u00e7\u00e3o, prev\u00ea-se a utiliza\u00e7\u00e3o inicial de switches em software, como o BMv2, e em um segundo momento a avalia\u00e7\u00e3o de um prot\u00f3tipo constru\u0131\u0301do sobre um testbed usando SmartNICs program\u00e1veis e switches program\u00e1veis Edgecore Wedge 100BF-32X.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A linha tem\u00e1tica&nbsp;Intelig\u00eancia Artificial em Redes Program\u00e1veis&nbsp;visa propor como o plano de dados e seus dispositivos podem ser utilizados para a execu\u00e7\u00e3o de algoritmos de aprendizado de m\u00e1quina. Abaixo s\u00e3o&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-117","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/idric.ic.unicamp.br\/index.php\/wp-json\/wp\/v2\/pages\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/idric.ic.unicamp.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/idric.ic.unicamp.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/idric.ic.unicamp.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/idric.ic.unicamp.br\/index.php\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":1,"href":"https:\/\/idric.ic.unicamp.br\/index.php\/wp-json\/wp\/v2\/pages\/117\/revisions"}],"predecessor-version":[{"id":118,"href":"https:\/\/idric.ic.unicamp.br\/index.php\/wp-json\/wp\/v2\/pages\/117\/revisions\/118"}],"wp:attachment":[{"href":"https:\/\/idric.ic.unicamp.br\/index.php\/wp-json\/wp\/v2\/media?parent=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}