Resumo: O trabalho em questão realiza uma introdução teórica de séries temporais financeiras, assim como de processos estocásticos, suas aplicações no cálculo do valor em risco de séries temporais financeiras e de algumas metodologias para a estimação de volatilidade. Finalmente, apresentamos uma comparação do cálculo do valor em risco, utilizando dois modelos diferentes para estimação da volatilidade, sendo esta uma informação de entrada para o cálculo do valor em risco. Os dois modelos comparados são o GARCH(1,1) e o modelo exponencial de médias móveis proposto pela metodologia RiskMetrics, EWMA. Para o ativo selecionado (ação brasileira da empresa Petrobras S/A, PETR4) conseguimos observar uma ligeira vantagem do GARCH(1,1), uma vez que mostrou experimentalmente uma menor superestimação do valor em risco e, portanto, das volatilidades.
Resumo: Este trabalho descreve um estudo comparativo entre diferentes arquiteturas de técnicas de detecção de mudanças em imagens de satélite em ambientes florestais. O estuda procurou explorar a capacidade de modelos já bem conceituados na área de segmentação de imagens e detecção de mudanças em lidar com um problema ambiental muito recorrente no Brasil, que é o desmatamento. As arquiteturas analisadas foram U-Net, U-Net++, DeepLabV3 e DeepLabv3+. Esses modelos foram treinados e testados com bases de dados em contextos de dados florestais de desmatamento, utilizando-se imagens do satélite Sentinel-2. Cada modelo em cada contexto foi analisado e seus resultados foram comparados, mostrando que alguns se comportam de maneira mais eficiente dado o contexto dos dados introduzidos.
Resumo: Ao longo dos últimos anos, organizações de variados ramos industriais têm aderido ao uso da Nuvem Computacional, pois os benéficos dessa arquitetura são cada vez mais evidentes. A tecnologia de Virtualização funciona como base para o sucesso desse ambiente em termos de flexibilidade e escalabilidade. Contudo, mesmo com a crescente que se tem verificado, a segurança ainda figura como um fator limitante para muitos atores em suas jornadas de migração para a Nuvem. Muitos autores de artigos científicos, white papers e relatórios técnicos, têm empregado esforços para contribuir com o aumento de segurança em um escopo de ameaças relacionadas à Virtualização dentro do ecossistema computacional mencionado, mas fica nítida a falta de padronização durantes as apresentações dos desafios considerados em cada um desses trabalhos. O presente Relatório objetiva propor uma nova forma de categorizar os desafios de segurança em Nuvem, especificamente relacionados à Virtualização, de maneira simples e sistemática.
Resumo: Este trabalho tem como objetivo estudar e comparar tecnologias de mensageria. A comparação consistiu em duas etapas distintas, primeiro é apresentado uma explicação teórica a respeito das funcionalidades (casos de uso) e diferenças de cada uma das tecnologias alvo, além de um balanço identificando os pontos favoráveis e desfavoráveis dessas aplicações. A segunda etapa abrange testes práticos das tecnologias, sendo feitos através da execução de benchmarks voltados a testar situações de pequena escala, e que pretendem ressaltar os benefícios de cada ferramenta, bem como identificar em quais situações de pequena escala cada uma tem melhor desempenho.
Para melhor representar situações de pequenas escala, os testes foram realizados tanto em uma única máquina local, quanto em múltiplas máquinas separadas pela internet, sem estar conectadas por nenhuma rede local. Neles foram medidos tanto o volume processado quando a latência das mensagens.
Resumo: Sistemas contemporâneos têm cada vez mais demandado o uso de tecnologias que dão suporte à adaptação, devido ao aumento da sua heterogeneidade, e da volatilidade presentes em seus ambientes operacionais. Essa adaptação torna-se necessária ainda em tempo de execução, à medida que mudanças, cada vez mais difíceis de se antecipar, ocorrem no ambiente operacional. Tecnologias de contêiner, orquestradores de contêineres, e plataformas de computação em nuvem são exemplos de tecnologias que são vastamente utilizadas para prover essa flexibilidade e adaptabilidade demandada pelos sistemas modernos. Estas ferramentas são melhor utilizadas por sistemas sem estado (stateless), que por sua vez manipulam o estado antes da implantação do sistema, como por exemplo, extraindo e armazenando-o em base de dados. Porém, essa manipulação ainda acontece de maneira manual e fixa, sem beneficiar-se de diferentes alternativas. Em contrapartida, embora os sistemas com estado (stateful) sejam mais difíceis de adaptar, acabam tendo um melhor desempenho. De forma a aproveitar o melhor dos dois mundos, este projeto apresenta um primeiro estudo de caso na gestão transparente do estado, de acordo com diferentes modelos de consistência, dentro do processo de distribuição de sistemas. E através de uma metodologia empírica, são explorados os desafios e impactos da auto-distribuição de sistemas com estado, trazendo perspectivas futuras para a gestão autonômica do estado em sistemas auto-distribuídos.
Resumo: Este trabalho tem por objetivo introduzir e avaliar a utilização da solução NGINX, em sua versão gratuita, como load balancer. O foco, portanto, será em trazer os conceitos relacionados à distribuição de carga em requisições HTTP com o intuito de analisar a performance da solução em cada algoritmo disponível em sua configuração: Round Robin, Weighted Round Robin, IP Hash, Least Connection e Weighted Least Connection.
Resumo: Nos últimos anos o conceito de computação em nuvem tem ganhado muito força e se popularizado muito rapidamente, nesse contexto foram desenvolvidas diversas ferramentas e frameworks para simular e lidar com esses tipos de soluções e auxiliar nas pesquisas e implantações fornecendo diversas métricas sobre o sistema.
O CloudAnalyst foi desenvolvido como uma alternativa para redes de larga escala e com uma interface de usuário flexível permitindo a separação do exercício da simulação do exercício de desenvolvimento e depuração de código para executar as mesmas simulações. Este trabalho focará em explorar alguns dos recursos fornecidos pelo simulador e realizar uma análise de viabilidade apontando vantagens e desvantagens.
Resumo: A criptografia homomórfica (Fully Homomorphic Encryption ou FHE) possibilita a realização de operações lógicas e aritméticas em dados encriptados que se refletem no dado decriptado. Por exemplo, sejam e dois números, e uma função de encriptação então: , onde seria a operação análoga à adição para o conjunto de amostras encriptadas. Essa propriedade facilitaria o gerenciamento de dados para provedores de serviços em nuvem além de fornecer proteção para dados de clientes contra vazamentos. Neste trabalho exploramos a implementação homomórfica da inferência para classificadores binários baseados em regressão logística. Empregamos o esquema TFHE [Chillotti et al., 2020]] e utilizamos bibliotecas que já forneciam algumas operações lógicas e aritméticas, desenvolvendo outras operações conforme necessário. Utilizados dois conjuntos de dados, o primeiro referente a um censo americano [Kohavi and Becker, 1994] que nos serviu durante o processo de desenvolvimento e o segundo sobre o pós cirúrgico de câncer de mama [Haberman, 1976] com o qual reportamos nossos resultados. Implementamos dois modelos de inferência, um que operava com dados e pesos encriptados e outro com texto claro apenas. Este nos auxiliou durante o processo de escolha de parâmetros como precisão e número de bits reservados para parte fracionária do número de modo que o tempo de execução fosse menor, mas a acurácia fosse preservada. Com o modelo encriptado medimos o tempo de execução da inferência. Identificamos que o fator mais importante para o desempenho do modelo era o número de atributos do dado de entrada, visto que ele determina o número de multiplicações homomórficas necessárias por amostra. Esta, a depender da precisão, se mostrou de 20 a 40 vezes mais demorada do que adição.
Abstract: Fully Homomorphic Encryption (FHE) makes it possible to perform logical and arithmetic operations on encrypted data that also happens in the underlying plaintext data. For example, let and be two numbers, and an encryption function, then: , where would be the analogous addition operation for the set of encrypted samples. This property could facilitate data management for cloud service providers while protecting customers' data against leakage. In this report, we explored the homomorphic encryption using the TFHE scheme [Chillotti et al., 2020] and applied it to the Logistic Regression inference using libraries that already provide a few logical and arithmetic operations, implementing others as needed. We used two sets of data, the first a 1994 US census [Kohavi and Becker, 1994] that we employed during the development process and the second a post-surgical breast cancer dataset [Haberman, 1976] for reporting our results. We developed two models, the ciphertext model that worked with encrypted inputs and encrypted weights while the other, the cleartext, worked with cleartext only. This one we employed to find the best combination of precision for each ciphertext and the number of bits reserved for fraction so the execution time would be reduced but the inference accuracy preserved. With the ciphertext model, we focused on measuring the execution time. We concluded that the number of features a sample from each dataset needs have a great impact on the overall performance since it sets the number of multiplications required in the inference. Finally, we observed that the multiplication implementation we used can be from 20 to 40 times costlier than one addition operation depending on the chosen precision.
Resumo: O sigilo dos dados e operações realizadas por um computador torna-se cada vez mais relevante. Paralelamente, tornam-se mais intensos os ataques à segurança dos dados e à privacidade dos usuários. Também é fato conhecido que a miniaturização dos computadores, consolidada pelos smartphones, e recentemente por dispositivos vestíveis tornou-se amplamente comum, sendo o Android o sistema operacional mais utilizado nestes dispositivos. Tomando estas bases, este trabalho propõe-se a apresentar alguns dos princípios fundamentais para o entendimento da criptografia, em especial os algoritmos baseados em chave simétrica, e analisar as soluções de criptografia implementadas pela Google ao longo das versões de seu sistema operacional mobile e open-source, o Android.
Resumo: Dados de Novembro de 2021 mostram que existem mais de 200 milhões de proteínas nas quais suas funções moleculares ainda são desconhecidas. Como a determinação empírica destas funções são lentas e custosas, diversos grupos de pesquisa ao redor do mundo tem aplicado aprendizado de máquina para realizar a predição de funções de proteínas. Neste trabalho, avaliamos o uso desde métodos clássicos até arquiteturas baseadas em Transformers. Nossa melhor arquitetura consiste no uso dos embeddings resultantes de dois Transformers (um pré-treinado com o ProtBERT e outro com o ProtBERT-BFD) como entrada para uma MLP. Este modelo obteve um de 0,562 na nossa base de dados, e, ao aplicarmos este modelo na mesma base utilizada pelo DeepGOPlus, que é um dos principais métodos para realizar a predição de funções de proteínas, atingimos o valor de 0,617, superando o melhor resultado da literatura.
Abstract: Maximum distance separable (MDS) matrices are a key component in several cryptoschemes. One of the most interesting features, from a cryptographic point of view, of MDS matrices is the fact that these provide perfect diffusion for linear layers.
Thus, this work will not only explore the characteristic of perfect diffusion in MDS layers, but will also demonstrate that the use of MDS matrices is a necessary (but not a sufficient) condition in order to achieve resistance against infinitely long invariant subspace trails attacks in P-SPN linear layers. Moreover, it will also be presented some MDS matrices construction techniques.
Resumo: Este trabalho é um relatório de um projeto de estudo de políticas de enfileiramento utilizadas para transmissão de vídeos 360.
Com base no estudo das políticas de enfileiramento: FIFO, Strict Priority e Weighted Fair Queuing desenvolvidas no aioquic, pode-se concluir que não há clara diferença de qualidade de serviço na transmissão de vídeo 360º para as políticas de enfileiramento: FIFO, SP e WFQ. Por serem políticas tão distintas em suas abordagens, era esperado que alguma diferença fosse encontrada nos resultados. Deste modo, suspeita-se de que alguma configuração de enfileiramento interna do Aioquic tenha interferido nos resultados. Para uma melhor análise d estas políticas, recomenda-se a investigação mais profunda da biblioteca e seu impacto, ou a utilização de outra implantação de QUIC.
Resumo: O propósito deste trabalho é o de analisar o comportamento de algoritmos exatos e heurísticas para uma versão do Problema do Caixeiro Viajante com Minimização de Energia, investigando-o na abordagem de Programação Linear Inteira. Para o enfoque heurístico, foi desenvolvida uma combinação de variações dos algoritmos do Vizinho Mais Próximo e de Busca Local 2-Opt, configurada como uma heurística Multi-Start. No que tange a realização dos experimentos foi usada a biblioteca de modelagem e otimização Gurobi em um ambiente Jupyter Notebook.
Resumo: O propósito deste trabalho é o de analisar o comportamento de algoritmos exatos e heurísticas para uma versão do Problema do Caixeiro Viajante com Minimização de Energia, investigando-o na abordagem de Programação Linear Inteira. Para o enfoque heurístico, foi desenvolvida uma combinação de variações dos algoritmos do Vizinho Mais Próximo e de Busca Local 2-Opt, configurada como uma heurística Multi-Start. No que tange a realização dos experimentos foi usada a biblioteca de modelagem e otimização Gurobi em um ambiente Jupyter Notebook.
Resumo: Com a popularização da arquitetura baseada em microsserviços, inúmeras ferramentas complementares foram desenvolvidas, ferramentas essas, que buscam melhorar as soluções de mercado que empregam microsserviços. Esse projeto tem como objetivo estudar uma das principais ferramentas utilizadas em microsserviços, que tem como principal função gerenciar os diversos módulos que um sistema complexo pode conter. Através da implementação da arquitetura e seus módulos, aliado a execução de um caso feliz que utiliza a solução gateway, foi possível analisar a eficácia da ferramenta, assim como observar as possíveis dificuldades a serem enfrentadas no processo de implementação da arquitetura de microsserviços. O projeto traz como conclusão uma visão sobre como a arquitetura de microsserviços é promissora, e que a ferramenta gateway demonstra-se importante para uma implementação limpa e performática desse padrão.
Resumo: Computação Serverless é um assunto atualmente em alta no mercado, relacionado à Computação em Nuvem, devido ao seu potencial de eliminação de preocupações com infraestrutura e escalabilidade de soluções por parte da equipe de desenvolvimento. A literatura acadêmica sobre o tema está em estágio inicial no que diz respeito às boas e más práticas de uso comuns em aplicações Serverless, sobretudo em uma perspectiva de manutenção e evolução de software. Diante desse cenário, o objetivo deste trabalho é, através da mineração de repositórios de software de código aberto, desenvolver uma ferramenta que analise e colete métricas relacionadas às práticas comumente presentes em projetos desenvolvidos para execução Serverless, de modo que questionamentos sejam levantados e sejam definidas direções que sirvam de motivação e base para estudos mais aprofundados no tema.
Para isso, foi desenvolvida uma estratégia capaz de buscar, avaliar a pertinência e coletar métricas de manutenibilidade e escala dos projetos, e por fim os resultados passaram por uma análise inicial que permitiu identificar questões, padrões e suspeitas de possíveis antipadrões e práticas comuns para que os estudos na área evoluam, além de limitações e possibilidades de evolução da ferramenta de apoio serem abordadas para desenvolvimento futuro.
Resumo: Este trabalho visa projetar e implementar na plataforma OpenDesign meios de tornar o processo de avaliação heurística mais social, de forma a permitir que vários participantes da avaliação possam atribuir, com suas percepções, severidades aos problemas relatados. A proposta é proporcionar um ambiente de discussões e ampla comunicação entre os envolvidos na avaliação. Implementamos um módulo para se documentar procedimentos e resultados de avaliação com usuários. Essa contribuição na plataforma possibilita detalhar e documentar informações sobre avaliações conduzidas. A funcionalidade permite registrar múltiplas execuções de determinada avaliação. Este trabalho permite fornecer novas funcionalidades de apoio ao processo de design e avaliação de interfaces humano-computador na plataforma.
Abstract: This work aims to design and implement in the OpenDesign platform means to make the heuristic evaluation process more social, in order to allow various evaluation participants to attribute, with their perceptions, severity to the reported problems. The proposal is to provide an environment for discussions and broad communication between those involved in the assessment. We implemented a module to document assessment procedures and results with users. This contribution to the platform makes it possible to detail and document information about assessments conducted. The functionality allows you to record multiple runs of a given assessment. This work allows us to provide new features to support the design and evaluation process of human-computer interfaces on the platform.
Resumen Este trabajo tiene como objetivo diseñar e implementar en la plataforma OpenDesign medios para socializar el proceso de evaluación heurística, con el fin de permitir que los diferentes participantes de la evaluación atribuyan, con sus percepciones, la gravedad de los problemas reportados. La propuesta es proporcionar un ambiente para discusiones y una amplia comunicación entre los involucrados en la evaluación. Implementamos un módulo para documentar procedimientos de evaluación y resultados con los usuarios. Esta contribución a la plataforma permite detallar y documentar información sobre las evaluaciones realizadas. La funcionalidad le permite registrar múltiples ejecuciones de una evaluación determinada. Este trabajo nos permite brindar nuevas funcionalidades para apoyar el proceso de diseño y evaluación de interfaces humano-computadora en la plataforma.
Resumo: Este trabalho estuda uma ferramenta para a visualização interativa da evolução de grafos de conhecimento. Implementamos o software TKGEvolViewer, uma ferramenta que possibilita a exploração gráfica de Temporal Knowledge Graphs (TKGs) a partir de valores de métricas codificadas nas estruturas dos TKGs. Nosso resultados permitem usuários conduzirem análises visuais de TKGs através de um modal gráfico que filtra informações disponıveis por meio de análises predefinidas. Nossa solução possibilita adicionalmente uma exploração avançada e livre da estrutura dos grafos de conhecimento.
Resumo: O melanoma é o tipo mais grave de câncer de pele devido a sua alta capacidade de provocar metástase. É mais comum em pessoas negras, acometendo frequentemente regiões acrais: palmoplantares, extremidades digitais, mucosas e semi-mucosas. As redes neurais profundas têm mostrado um enorme potencial para melhorar o atendimento clínico e o diagnóstico de câncer de pele. Utilizá-las poderia melhorar o acesso a serviços de dermatologia no Brasil, que são muito desiguais. Atualmente, os estudos realizados utilizam bases de dados predominantemente brancas e não reportam resultados dos diagnósticos em uma diversidade de tons de pele de pacientes. Portanto, neste trabalho apresentamos uma avaliação de modelos supervisionados e auto-supervisionados em bases de dados com lesões de pele localizadas em regiões acrais, que são prevalentes em pessoas negras, além de apresentar uma base de dados com lesões de pele em regiões acrais. Ainda, avaliamos bases de dados em relação à Escala Fitzpatrick para verificar o desempenho em pele negra. Atualmente, esses modelos não podem ser utilizados de forma generalista, pois tem bons resultados apenas em lesões em pele branca. A criação de modelos específicos devido a uma negligência na criação de bases de dados diversas é inaceitável. As redes neurais profundas têm grande potencial para melhorar o diagnóstico principalmente para populações com menos acesso a dermatologia, mas a inclusão de lesões de pele com características menos comuns é extremamente necessária para que essas populações tenham acesso aos benefícios de uma tecnologia inclusiva.
Resumo:: No cenário atual, nota-se cada vez mais o aumento do número de pessoas portadoras de obesidade, diabetes e outras doenças crônicas. Os especialistas em saúde e nutrição admitem que a combinação do consumo de alimentos processados, em conjunto com estratégias de publicidade, é uma das causas dessa epidemia global. Em resposta a esse reconhecimento, a Organização Mundial de Saúde (OMS) têm apontado a relevância de se monitorar e restringir esse tipo de publicidade. As pesquisas de monitoramento de publicidades televisivas revelam a prevalência de anúncios alimentícios sem o perfil nutricional favorável e a utilização de estratégias persuasivas. Este projeto de final de graduação investigou técnicas de aprendizado de máquina para o monitoramento automático de publicidades de alimentos em canais de televisão no Brasil. Mais especificamente, analisou a efetividade da EfficientNet como um método de classificação de publicidades alimentícias nos canais de TV brasileiros. Como conclusão, a rede analisada em conjunto com as técnicas estudadas (e.g., data augmentation, batches balanceados, adição de peso por classe) se mostram extremamente promissoras para a realização dessa classificação automática. Destacamos que este tipo de pesquisa é nova por si mesma e ainda não foi desenvolvida para o monitoramento automático de publicidades de alimentos.
Resumo: A computação científica está levando a indústria a resolver problemas cada vez mais difíceis. No entanto, isto representa grandes desafios para cientistas e desenvolvedores, tornando difícil implementar / manter esses problemas e ainda entregar resultados de alta performance aos usuários finais. Para lidar com essas questões, Devito surgiu nos últimos anos. Este framework combina inteligentemente tecnologia de compiladores com um motor de matemática simbólica baseado em Python para entregar uma execução otimizada e transparente para os usuários finais. Apesar das questões relacionadas à solução e à manutenção serem consideravelmente amenizadas com Devito, os aspectos de desempenho ainda são uma preocupação que invariavelmente leva o sistema a usar execuções distribuídas. Ao usar o padrão MPI, o Devito fornece efetivamente uma solução para este problema. No entanto, o MPI é historicamente difícil de manter e apresenta várias responsabilidades aos desenvolvedores do Devito. Para contornar os problemas do MPI, o OmpCluster se apresenta como uma ótima solução, fornecendo ao programador uma sintaxe de código mais simples, que se estende a partir da conhecida API OpenMP, porém tão confiável e escalável quanto o MPI. Portanto, neste relatório o framework Devito foi estendido por meio de sua especialização de backend para que pudesse usar as boas propriedades fornecidas pelo runtime de tarefas distribúidas OmpCluster. Além disso, resultados numéricos mostraram o potencial escalonável do backend criado. Em conclusão, algumas restrições necessárias são apresentadas para que o usuário possa estar ciente das limitações existentes na implementação atual.
Abstract: Scientific Computing is pushing the industry to increasingly solve harder problems. However, this is posing considerable challenges to scientists and developers, making it difficult to implement/maintain those problems and still deliver high-performance results to final users. To deal with those struggles, Devito has arisen in the past few years. This framework cleverly combines compiler technology with a Python-based symbolic mathematical engine to deliver transparent and optimized execution to end-users. Despite the issues related to solving and maintaining are considerably alleviated with Devito, the performance aspects are still a concern which invariably leads the system toward using distributed executions. By using the MPI standard, Devito effectively provides a solution to that problem. However, MPI is historically difficult to maintain and poses multiple responsibilities to Devito's developers. To overcome the MPI issues, OmpCluster presents itself as a great solution, providing to the programmer a simpler code syntax, which is extended from the very known OpenMP API, yet as reliable and scalable as MPI. So in this report, the Devito framework was extended through its backend specialization so that it could use the good properties provided by the OmpCluster runtime system. On top of that, numerical results have shown the scalable potential of the created backend. In conclusion, some necessary restrictions are presented so that the user can be conscious of the existing limitations of the current implementation.
Abstract: Convolutional Neural Network (CNN) models are among the most popular choices for deep learning solutions to problems with huge data sets. Given that CNNs are very computationally expensive, optimizing convolutions is central to enable larger models and speed up inference time. Tensor operations, e.g. matrix multiplication, have increasingly relied on hardware accelerators, such as IBM POWER10's MMA engine.
This work explores how to exploit MMA and the POWER10 architecture to improve convolution performance, and proposes a novel algorithm for the operation, named Convolution Slicing Optimization (CSO), which tiles the instance into multiple sub-problems, and schedules the resulting tiles so to minimize DRAM memory accesses. After the convolution is tiled, a micro-kernel is used to increase throughput with the MMA engine.
To evaluate the proposed approach, a set of experiments was performed using a POWER10 CPU, and the results show that CSO is capable of efficiently tile the convolution according to a set ofparameters calculated at compile time. Speedups of up to result when comparing the CSO convolution-based slicing technique to a widely used reduction to matrix multiplication.
Resumo: Em 2018 entrou em vigor na União Europeia o Regulamento Geral de Dados (GDPR); em 2021, inspirado no regulamento Europeu, foi a vez do Brasil ter sua lei de dados entrando em vigência em sua plenitude com a Lei Geral de Proteção de Dados Pessoais (LGPD). Levando em consideração que existe uma alta demanda de vários setores econômicos que utilizam dados pessoais para desenvolverem produtos e serviços, este trabalho investiga, através de uma pesquisa documental e uma revisão bibliográfica, o formato das legislações que abordam a temática de tratamento de dados pessoais e como as mesmas impactam diretamente e indiretamente o desenvolvimento de tecnologias e a utilização de dispositivos, principalmente no contexto da Internet das Coisas. Ademais, são pautados os desafios associados a adequação de procedimentos e arquiteturas das soluções baseadas em Internet das Coisas a fim de garantir a segurança e privacidade dos usuários bem como a conformidade com a LGPD.
Resumo: Com avanço da internet e dos serviços que dela se originaram cresce a necessidade de proteger os dados que são inseridos na rede de computadores. A natureza dos dados varia, desde uma página Web requisitada por usuário que se conecta a uma plataforma de e-commerce até os dados sigilosos de seu cartão de crédito, que ele deverá inserir se desejar finalizar o pedido. Essa rotina já é uma realidade, e os desenvolvedores de aplicações precisam sempre garantir a proteção dos dados inseridos através do uso de criptografia. A criptografia em si é um conjunto de princípios e técnicas utilizadas para cifrar o conjunto de dados de origem, com o intuito de protegê-los de terceiros possivelmente mal-intencionados. Uma vez que a quantidade de dados que trafegam pela rede é enorme também é a demanda por softwares que forneçam serviços de criptografia. Dentre os mais importantes estão os sofwares livres, tais como OpenSSL, LibreSSL e GnuTLS, que oferecem maior transparência em relação ao processo criptográfico pois são desenvolvidos por comunidades abertas, tendo milhares de olhos vigilantes analisando o código fonte. Uma vez que o software livre está sempre aberto para estudo e redistribuição, de acordo com sua respectiva licença, ele proporciona maior igualdade no acesso a informação, dando suporte aos desenvolvedores de aplicações, desde o desenvolvedor full stack independente até grandes empresas que podem, ou não, contribuir através de doações.
Neste trabalho apresentamos os fundamentos da criptografia de chave pública, em especial RSA, tal como as vantagens da criptografia como software livre. Através do estudo das implementações de toolkits criptográficos baseados em código aberto, buscamos definir os pontos fortes e fracos de cada um deles tal como incentivar novas contribuições para com as comunidades.
Resumo: O Módulo de Aluno Especial do SiGPos foi desenvolvido para substituir o sistema Castelo no gerenciamento de alunos especiais, centralizando as atividades acadêmicas da Pós-Graduação do IC em uma única aplicação. Além do problema da falta de unificação entre as partes, o sistema Castelo era pouco seguro e pouco otimizado, forçando os alunos especiais a inserirem novamente todos os seus dados a cada novo semestre. Para resolver o problema, foi desenvolvida uma solução dentro da plataforma do SiGPos, utilizando tecnologias atuais e implementando validação de campos e persistência de dados, eliminando assim a necessidade de preenchimento de informações redundantes a cada matrícula e tornando o processo mais simples e direto. Apesar de notáveis as melhorias implementadas durante este projeto, seu foco principal foi o usuário. Para ser colocado em produção, o sistema ainda precisa de uma interface administrativa, que será implementada em interações futuras com foco no administrador. Dessa forma, este trabalho apresenta o primeiro passo na modernização do processo de matrícula de aluno especial do IC e os resultados obtidos nessa primeira interação, bem como as dificuldades encontradas e lições aprendidas.
Resumo: Computação móvel e de alto-desempenho têm colocado requerimentos mais fortes porém divergentes em hardware de ponto flutuante. Ao mesmo tempo, processamento de imagem e machine learning estão se tornando mais e mais comuns nos dispositivos de usuários. Portanto, uma arquitetura que pode se adaptar entre computação eficiente energéticamente e de alta precisão é desejável.
Nós integramos uma nova arquitetura de FPU, a FPnew, em um processador ARM atrelado a uma FPGA. Usando essa unidade como um acelerador de código, nós mostramos algumas cargas de trabalho usando vários formatos de ponto flutuante. Como conclusão, nós mostramos algumas fraquezas dessa unidade mas também uma carga de processamento de images particularmente adequada ao uso de ponto flutuante de 16 bits não disponível nativamente no processador ARM.
Abstract: Mobile and high-performance computing have placed increasing and diverging constraints on floating-point hardware. At the same time, image processing and machine learning are becoming more and more common on user's devices. Therefore, an architecture that can adapt between energy efficient and high precision processing is desirable.
We integrate a novel FPU architecture, the FPnew, in a ARM processor coupled to an FPGA. Using the unit in an accelerator configuration, we show some workloads using several floating-point formats. As a conclusion, we show some weaknesses of the unit but also some particularly suited image processing workload making use of the 16-bit format not available in the ARM core natively.
Resumo: Este trabalho tem como objetivo comparar uma técnica de teste utilizando Behavior Driven Development (BDD) e Cucumber, com a forma como é testada uma Application Programming Interface (API) utilizada no mercado de pagamentos para levantar vantagens e desvantagem de cada uma das abordagens. Para esta comparação, foi realizado um estudo de caso desta API. Foram implementandos os testes gerados por uma ferramenta pra gerar testes com base no pairwise, para então poder comparar o resultado da execução desses testes com os testes gerados de forma manual dessa mesma API pela empresa que a implementou. Os resultados do trabalho apontam que ambas as abordagens possuem pontos positivos e negativos. Sendo a execução automatizada e a aplicação do BDD no processo de criação dos casos de teste os responsáveis pelas diferenças entre os métodos estudados.
Resumo: Nos últimos anos, uma onda crescente de plataformas de trabalhos começou a surgir em meios digitais. Aplicativos que angariavam trabalhadores sem vínculo empregatício se tornaram populares e, com isso, a precarização de trabalhos de motoristas e entregadores, por exemplo, tornou-se uma discussão ativa na sociedade frente essas mudanças. Nesse contexto, surge a ideia da Plataforma do Trabalho Decente, com o intuito de oferecer como política pública serviços já realizados por trabalhadores autônomos, porém garantindo direitos trabalhistas mínimos como seguridade social. Este projeto final de graduação apresenta o projeto arquitetural para a plataforma em desenvolvimento, aplicando técnicas de Engenharia de Software. O projeto utilizou princípios Domain-Driven Desgin e modelos C4 para projetar um arquitetura escalável baseada em microsserviços que apoiará o desenvolvimento da plataforma.
Resumo: Diversos aplicativos para oferecimento de serviços vêm surgindo nos últimos anos, como entregas de comidas e produtos em geral, motoristas e caronas. Em sua grande maioria, os serviços são realizados por trabalhadores autônomos que perdem seus direitos trabalhistas, sob uma justificativa de que o mesmo é um empreendedor, tentando descaracterizar o vínculo empregatício. Nesse contexto, surge a ideia da Plataforma do Trabalho Decente, um sistema cujo o objetivo é conectar trabalhadores autônomos de diversas áreas de serviços com os clientes que buscam esses serviços. Com o diferencial de repassar o pagamento ao autônomo sem taxas, apenas recolhendo impostos que garantem os direitos do trabalhador. Dessa forma, a plataforma é intencionada como uma política pública, intermediando os serviços sem fins lucrativos. A Plataforma do Trabalho Decente funcionará como um marketplace para o cliente, onde o mesmo poderá escolher o serviço que está precisando, solicitar orçamentos entre diversos autônomos via chat e fechar negócio com prestador de sua preferência. Já o autônomo poderá oferecer serviços em diversas áreas e receber contato de clientes na região em que o mesmo atende para realizar seus serviços. Com base na proposta do aplicativo esse projeto apresenta a modelagem do sistema baseado em domínios e o desenvolvimento de interfaces em protótipos que seguirão o conceito de prototipação descartável, apresentado em Userflow e Wireflow, consequentemente será desenvolvido mockups navegáveis. A avaliação do protótipo foi realizada na plataforma AttrackDiff e mostrou uma boa aceitação de usuários.
Resumo: Este relatório técnico apresenta uma análise de desempenho de aplicações executadas de forma segura sobre a plataforma Intel SGX, presente em alguns processadores da fabricante, utilizando a biblioteca Open Enclave. Realizou-se experimentos com aplicações do pacote Madagascar para obter dados a fim de se construir hipóteses e então utilizou-se benchmarks para validar as hipóteses e caracterizar melhor as diferenças no desempenho das aplicações executadas com ou sem a plataforma. Concluiu-se que a operação cujo desempenho foi mais afetado ao rodar sobre a plataforma de segurança foi a busca de páginas de memória que não estavam na cache do processador e que as operações que não fazem acesso à memória não sofrem impacto em seu desempenho.
Resumo: Chatbots veem se tornando ferramentas cada vez mais essenciais para o atendimento ao cliente nas plataformas de e-commerces modernas. Responder perguntas de forma rápida e correta é em muitos casos a diferença entre realizar uma venda ou não. Conseguir um sistema de chatbot para responder de maneira adequada automaticamente em múltiplas línguas é um grande desafio de pesquisa. Este trabalho propõe utilizar um modelo de redes neurais chamado DeepSim para tratar e avaliar esse problema para as línguas Portuguesa e Espanhola. Em nossos experimentos, avaliamos o impacto de dados anotados na efetividade do modelo treinado para estimar o trabalho necessário para expandi-lo para outras línguas.
Resumo: Motivado pelo distanciamento social, o percentual da participação do e-commerce no varejo vem crescendo cada vez mais. Ao mesmo tempo, o processo de devolução nas lojas virtuais acompanha esse crescente número. Por meio da análise de estudos anteriores, afirmamos os efeitos positivos, tanto para lojistas quanto para clientes, de políticas tolerantes sobre a devolução de produtos.
Este trabalho investigou o design e o desenvolvimento de um protótipo de um aplicativo móvel que apoie um processo de devolução de produtos no comercio eletrônico. Nossa proposta tem o potencial de servir como referência para possíveis comércios eletrônicos. Conduzimos avaliações do design obtido que sugerem maior confiança por parte dos participantes no processo devolutivo. Resultados indicaram uma maior intenção de compra futura em decorrência da experiência aprimorada de uso sobre o retorno de produto.
Resumo: Este trabalho consiste em um estudo referente à viabilidade do uso de sinais de eletromiografia de superfície no controle de movimentos em próteses ativas de membros superiores. Para tal, confeccionou-se um protótipo de braço prostético baseado no projeto inMoov, uma iniciativa open source que visa à construção do primeiro robô humanóide em impressão 3D. Inicialmente, os sinais eletromiográficos de 9 indivíduos - coletados por meio de eletrodos Cometa - foram obtidos a partir de um dataset na base de dados Ninapro.
Após o processamento, análise e extração de features no domínio do tempo, um classificador baseado em Support Vector Machine (SVM) com kernel RBF foi utilizado para identificar sinais eletromiográficos pertencentes a um conjunto de 3 movimentos - sendo estes escolhidos de um conjunto de configurações isométricas e isotônicas de mão e movimentos básicos do punho, os quais posteriormente foram reproduzidos pela prótese. Em um segundo experimento, testou-se o controle em tempo real da abertura e fechamento da mão prostética usando sinais coletados por sensores myoware fixados nos músculos do antebraço.
Abstract: This work consists of a study regarding the feasibility of using surface electromyography signals to control movements in active upper limb prostheses. To this end, a prototype of a prosthetic arm was made based on the inMoov project, an open source initiative that aims to build the first humanoid robot in 3D printing. Initially, the electromyographic signals of 9 individuals - collected using Cometa electrodes - were obtained from a dataset in the Ninapro database. After processing, analysis and extraction of features in the time domain, a classifier based on Support Vector Machine (SVM) with RBF kernel was used to identify electromyographic signals belonging to a set of 3 movements - these being chosen from a set of isometric configurations and hand isotonics and basic wrist movements, which were later reproduced by the prosthesis. In a second experiment, real-time control of the opening and closing of the prosthetic hand was tested using signals collected by myoware sensors attached to the muscles of the forearm.
Resumen Este trabajo consiste en un estudio sobre la viabilidad de utilizar señales de electromiografía de superficie para controlar los movimientos en prótesis activas de miembro superior. Para ello, se realizó un prototipo de brazo protésico basado en el proyecto inMoov, una iniciativa de código abierto que tiene como objetivo construir el primer robot humanoide en impresión 3D. Inicialmente, las señales electromiográficas de 9 individuos, recolectadas usando electrodos Cometa, se obtuvieron de un conjunto de datos en la base de datos de Ninapro. Después del procesamiento, análisis y extracción de características en el dominio del tiempo, se utilizó un clasificador basado en Support Vector Machine (SVM) con kernel RBF para identificar señales electromiográficas pertenecientes a un conjunto de 3 movimientos, que se eligieron de un conjunto de configuraciones isométricas y isotónicos de la mano y movimientos básicos de la muñeca, que luego fueron reproducidos por la prótesis. En un segundo experimento, se probó el control en tiempo real de la apertura y cierre de la mano protésica utilizando señales recopiladas por sensores myoware conectados a los músculos del antebrazo.
Abstract: This paper explores the key concepts and methods towards the development of an open-world first-order logic reasoner with step-by-step justification. It covers the fundaments of classical logic to theorem proving algorithms and key methods for developing a reasoner. Lastly, it presents the reasoner's results through logic exercises.
Resumo: É previsto que 82% de todo tráfego de dados na Internet seja relacionado a visualizações de vídeos online como em serviços da Netflix, Youtube e Twitch. Para aumentar a qualidade de experiência (QoE) dos usuários assistindo esses vídeos, é possível utilizar técnicas como Adaptive Bitrate Streaming e DASH para sempre tentar prover o vídeo para o usuário e diminuir interrupções e tempo de espera no inicio de vídeos, a sacrifício da qualidade do vídeo sendo disponibilizado. Enquanto esse tipo de solução é feita em arquiteturas de nuvem centralizadas, também é possível utilizar Computação na Borda e trazer servidores menos poderosos mais próximos do usuários, diminuindo o congestionamento e tempo de latência dos pedidos feitos. Esse trabalho tem como objetivo analisar duas possíveis soluções para a melhora de QoE dos usuários, uma a base do uso de computação na borda com servidores cache próximos do usuários e outra sem isso, porém com velocidades maiores nos enlaces utilizados.
Foram feitas diversas simulações no ns-3 em um cenário híbrido com infraestrutura borda-nuvem onde um grupo de usuários utilizava o cache na borda e o outro não, mas com velocidades mais altas. Foram testados casos para 100 e 120 usuários totais variando o aumento da velocidade de enlace para ser igual ao do grupo de cache e até 2 vezes maior. Os resultados mostram que o uso de cache na borda consegue atingir o QoE ótimo do cenário facilmente. O grupo sem cache precisou de um aumento de ao menos 50% em relação ao outro grupo para que tivesse valores similares. Além disso, o grupo sem cache teve mais casos discrepantes e usuários com experiências piores, devido a mais interrupções do vídeo pelo congestionamento da rede. Essa análise mostra que um investimento em uma infraestrutura de borda pode trazer benefícios instantâneos, como no caso analisado, assim como uma preparação para aplicações da próxima geração.
Resumo: Este trabalho tem como objetivo estudar o comportamento de uma aplicação que realiza a troca de mensagens entre plataformas de streaming de dados. Hermes, da mitologia grega conhecido como o mensageiro dos deuses, e também nome da aplicação, surgiu pela demanda de uma migração rápida entre arquitetura de dados e pela falta de conectores open-source entre duas plataformas, Apache Kafka e AWS Kinesis. Por ser uma aplicação recente, suporta apenas tais plataformas, tendo Kafka como origem e Kinesis como destino dos dados.
Para a realização dos testes, cada aplicação foi executada isoladamente em servidores na nuvem da AWS, coletando e, posteriormente, analisando os metadados dos tempos de entrada em cada plataforma de acordo com a cronologia dos eventos. Os resultados demonstraram que a aplicação pode ser um caminho vantajoso para uma migração rápida pela facilidade na configuração e na confiabilidade nas entregas das mensagens.
Resumo: Este trabalho tem como objetivo expor uma implementação de um detector de anomalias em streaming altamente escalável e disponível. Serão apresentados os requisitos para um algoritmo ser considerado um detector de anomalias em tempo real e exemplos de algoritmos que satisfazem esse requisito. A partir disso, será implementado um dos algoritmos utilizando processamento em streaming com Apache Kafka para maximizar a performance, escalabilidade e disponibilidade da solução. A implementação será avaliada em um ambiente de nuvem na AWS com métricas de consumo de memória, CPU, throughput e latência.
Resumo: O conceito de Internet das Coisas (IoT) tem inúmeras aplicações na sociedade atual tendo um grande potencial de revolucionar diferentes setores das nossas vidas. Com essa capacidade e previsão de expansão tão grande a garantia de escalabilidade de uma aplicação IoT não é trivial e é de extrema importância. Logo a disponibilidade de simulações para testar a escalabilidade dessas aplicações é de grande valia para o desenvolvimento da área. Diante disso, este trabalho visa analisar a plataforma Konker como uma opção para simulação de aplicações IoT, explorando a possibilidade de testes de escalabilidade com ela e mensurando quais recursos computacionais limitam ou não a escala dessas simulações. Após a implementação de uma aplicação de casa inteligente simples na plataforma Konker e a execução de um experimento de escalabilidade criando várias instâncias dessa aplicação e medindo os recursos computacionais utilizados durante o processo, concluímos que a Konker é uma plataforma viável para simulação de aplicações IoT. Em cenários com simulações de escalabilidade que se aproximem de casos reais de uso, com milhares de usuários, o processamento de CPU foi o recurso limitante e simulações em ambientes de nuvem com essa plataforma seriam uma extensão natural da análise aqui apresentada.
Resumo: O problema de ordenação apresenta diversas aplicações, por exemplo, o problema de rearranjo de genomas pode ser formulado como o de ordenação de permutações quando não há repetição de genes no modelo. Neste trabalho, exploramos as operações de troca, reversão e transposição. Essas operações podem ou não ser determinísticas, o que significa que um ou mais elementos devem ser posicionados corretamente. Quando falamos em uma operação parcialmente determinística, nos referimos ao fato de pelo menos um dos elementos envolvidos ir para a posição correta; já no caso de uma operação totalmente determinística, todos os elementos envolvidos na operação são posicionados corretamente. Primeiro, estudamos a versão parcialmente determinística, e depois a totalmente determinística para cada operação. No caso da troca, geramos algoritmos ou usamos algoritmos clássicos que conseguiam seguir a restrição de determinismo e manter o número mínimo de operações. Já no caso de reversão e transposição, foram desenvolvidas heurísticas que buscavam ordenar a permutação numa quantidade de operações próxima da mínima, seguindo as restrições de determinismo parcial. Para todas as operações com determinismo total descrevemos as permutações que podem ser ordenadas. Como esperado, ao se impor que as operações sejam parcialmente determinísticas, o número de operações necessárias para ordenar a permutação é maior já que há menos operações disponíveis. Além disso, constatamos que esse aumento é maior no caso da reversão do que na transposição. Foram necessárias em média 1.6 vezes mais operações de reversão e 1.2 vezes mais operações de transposição para ordenar as permutações ao forçar o determinismo.
Resumo: Com a pandemia de COVID-19, diversos esforços vêm sendo feitos para o desenvolvimento de diagnósticos rápidos e eficazes para auxiliar profissionais da saúde nas tomadas de decisão. Neste trabalho, avaliamos redes neurais convolucionais para classificar imagens radiográficas do tórax de pacientes entre normal, pneumonia e COVID-19. Avaliamos diversas técnicas de pré-processamento e de treinamento, sendo que os melhores resultados foram obtidos dividindo a imagem em patches e realizando o ensemble entre as redes especialistas em cada um dos trechos da imagem. Como resultado, nosso classificador atingiu 90,67% no teste, superando outro método da literatura.
Resumo: Este projeto teve como objetivo estudar a praticabilidade de uma nova forma proposta para a interpolação (inbetweening) de curvas entre quadros-chave de animações bidimensionais (2D). Baseado em técnicas desenvolvidas para animações digitais, que utilizam campos de movimento extraídos de modelos tridimensionais (3D) para guiar a interpolação entre quadros consecutivos, usamos métodos de fluxo óptico para estimar esses campos em imagens 2D.
Assim, exploramos uma forma de aplicar essas técnicas tanto para a animação 3D como 2D ao não usarmos informações restritas a apenas um dos meios de criação, como as que podem ser obtidas quando se usa renderização 3D para gerar imagens.
Embora este projeto tenha dado foco maior para desenhos 2D, a metodologia proposta é aplicável a outras formas de conteúdo que também não contam com as facilidades trazidas por 3D CGI (Computer-Generated Imagery). Um exemplo imediato disso é para a técnica de rotoscoping, já que o fluxo óptico pode ser estimado a partir da filmagem de referência sobre a qual a animação é traçada.
De modo geral, como representamos curvas definindo-as por partes, usando Bézier cúbicas, essa técnica pode se adequar a diversos casos -- e não somente a acompanhar linhas de contorno de objetos entre quadros (frames) -- como para delimitar regiões e rastreá-las ao longo do tempo pelos quadros de um vídeo, com intenção de usá-las em etapas de pós-processamento das imagens, correções de cor e adição de efeitos especiais.
Mostramos que é possível gerar interpolações muito próximas da intenção artística de forma automática, mas que o resultado final é apenas tão bom quanto o método de fluxo óptico que é usado se adapta ao estilo das imagens. Assim, os resultados obtidos abrem espaço para a análise futura de diversos aperfeiçoamentos que podem tornar o processo mais robusto e efetivo.
Resumo: Este trabalho investigou e avaliou um conjunto de técnicas para a geração de imagens de anáglifos, a partir de uma ou duas imagens, explorando o efeito tridimensional (3D) causado na construção de uma imagem bidimensional (2D). Técnicas clássicas foram também estudadas e aplicadas de forma a se obter um estudo comparativo entre elas. Com base nesta pesquisa, determinamos que os métodos lineares são os mais simples de ser implementados, em comparação com os não lineares. As seguintes técnicas foram avaliadas: Verdadeiro (True), Cinza (Gray), Colorido ( Color), Meia Cor (Half Color) e Otimizado (Optimized). Os resultados obtidos mostraram que cada uma destas técnicas possui suas vantagens e desvantagens e, embora algumas combinações de filtros melhorem o resultado final, ainda podemos observar algumas anomalias como a distorção de cores, competição retinal (retinal/binocular rivalry) e desaparecimento (ghosthing).
Resumo: Este relatório descreve as principais atividades relacionadas ao desenvolvimento de um aplicativo iOS para identificação de letras desenhadas na tela de um celular. Para isso, tecnologias modernas foram empregadas, como uma rede neural para a identificação das letras e uma interface de usuário implementada com os ambientes SwiftUI e PencilKit. Uma potencial aplicação do sistema é o auxílio a crianças no processo de alfabetização por meio de um celular, um dispositivo cada vez mais comum no cotidiano das pessoas.
Instituto de Computação ::
Universidade Estadual de Campinas
Av. Albert Einstein, 1251 - Cidade Universitária Zeferino Vaz • 13083-852 Campinas, SP - Brasil • Fone: [19] 3521-5838 |