Compactação do Algoritmo de Comparação de Strings do Snort para o uso na Memória Compartilhada de GPUs - Bonifácio da Silva Júnior, José; David Moreno, Edward; Ferreira dos Santos, Ricardo (Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD); 2017: Anais do XVIII Simpósio em Sistemas Computacionais de Alto DesempenhoDO - 10.5753/wscad.2017.237, 2017)
A tarefa de comparar assinaturas de ataques com pacotes de redes em um Intrusion Detection System (IDS) consome bastante tempo de CPU. Para amenizar esse problema, tem-se tentado paralelizar o motor de comparação dos IDSs transferindo sua execução da CPU para a GPU. Este artigo mostra o processamento em paralelo dos dados no algoritmo de comparação de string Aho-Corasick e propõe compactar a Tabela de Transição de Estados desse algoritmo a fim de possibilitar o uso dele na memória compartilhada. A paralelização foi feita através da plataforma CUDA da NVIDIA e executada nas diversas memórias da GPU. O algoritmo AC foi compactado e executado na memória compartilhada, alcançando, em seu melhor resultado, um ganho de desempenho de 73% em relação às outras memórias da GPU e o algoritmo compactado chegou a ser 56 vezes mais rápido que sua versão serial. Com isso, pode-se perceber que o uso da compactação na memória compartilhada torna-se uma solução adequada para acelerar o processamento de IDSs que necessitem de agilidade na busca por padrões.