26696 research outputs found
Sort by
WIP: A Preliminary Framework for Fostering Leadership Skills in Software Engineering Students
(Des)Proteção Social e Saúde Mental: as faces perversas das políticas públicas e as implicações para trabalhadores e usuários
Esta tese, vinculada ao Programa de Pós-Graduação em Serviço Social da Pontifícia Universidade Católica do Rio Grande do Sul, objetivou investigar a proteção social na sociabilidade capitalista, assim como as manifestações de proteção e desproteção social e sua interface com a saúde mental. Amparada na metodologia qualitativa e no método dialético-crítico, analisou as implicações dessas manifestações para trabalhadores (19 sujeitos) e usuários (18 sujeitos) das políticas de assistência social e saúde mental no município de Porto Alegre, sendo esses usuários com vivência de processos de rualização. Também buscou entender as alternativas de enfrentamento e de intervenção utilizadas pelos sujeitos. As análises apontam que o termo “proteção social” apresenta um conceito dúbio, que vai além de seu significado semântico: do ponto de vista das políticas públicas, há muito mais um apaziguamento dos sujeitos do que, de fato, a proteção social da classe que vive do trabalho. Em um contexto de estado neoliberal, expressão política do capitalismo, há valorização do individualismo, da meritocracia, da superexploração do trabalho, da minimização de direitos e seguranças trabalhistas, do sucateamento, da desresponsabilização e da terceirização das políticas públicas. Amplia-se, assim, a desproteção social, o que agudiza o adoecimento psíquico tanto da classe trabalhadora que é usuária das políticas públicas, quanto dos trabalhadores que executam as políticas públicas.Portanto, respondendo ao problema de pesquisa, a principal face perversa da (des)proteção social se manifesta quando se mascara, como garantia de direitos, no intuito de encobrir a divisão da classe trabalhadora, na produção da violência institucional, na inviabilização de acesso e/ou acessibilidade, na manutenção da ordem social imposta, no controle dos corpos vulneráveis, no adoecimento físico e mental da classe trabalhadora e, em casos extremos, a morte. É urgente uma nova ordem social para que a proteção social de fato exista, de modo a enfrentar a produção de desigualdades e a desproteção social, aspectos intrínsecos ao sistema capitalista.This thesis, linked to the Graduate Program in Social Work at the Pontifical Catholic University of Rio Grande do Sul, aimed to investigate social protection within capitalist sociability, as well as the manifestations of social protection and lack thereof and their interface with mental health. Grounded in qualitative methodology and the dialectical-critical method, it analyzed the implications of these manifestations for workers (19 subjects) and users (18 subjects) of social assistance and mental health policies in the city of Porto Alegre, with these users having experienced processes of street homelessness. It also sought to understand the coping strategies and intervention alternatives employed by the subjects. The analyses indicate that the term "social protection" presents a dual meaning that goes beyond its semantic definition: from the perspective of public policies, there is much more of a pacification of subjects rather than actual social protection for the working class. In a neoliberal state, the political expression of capitalism, there is an emphasis on individualism, meritocracy, the overexploitation of labor, the minimization of labor rights and securities, the dismantling of public services, the withdrawal of state responsibility, and the outsourcing of public policies. Consequently, social unprotection expands, exacerbating psychological distress both among the working class that relies on public policies and among the workers who implement them.Thus, in response to the research problem, the main perverse facet of (un)protection manifests itself when it is disguised as a guarantee of rights, aiming to obscure the division of the working class, perpetuate institutional violence, hinder access and/or accessibility, maintain the imposed social order, control vulnerable bodies, contribute to the physical and mental deterioration of the working class, and, in extreme cases, lead to death. A new social order is urgently needed for true social protection to exist, addressing the production of inequalities and social unprotection—intrinsic aspects of the capitalist system
Stordy: Efficient Data Retrieval And Storage For Appendable-Block Blockchains
A tecnologia de blockchain emergiu como uma das inovações mais significativas das últimas duas décadas. Desde sua proposta em 2008, as aplicações de blockchain expandiram-se além das transações financeiras, abrangendo setores como agricultura, educação, saúde e Internet das Coisas (IoT). No entanto, essas aplicações enfrentam diversas limitações, especialmente em ambientes de IoT. Particularmente, os dispositivos IoT possuem restrições relacionadas ao consumo de memória volátil. Mesmo em blockchains como a SpeedyChain, desenvolvidas especificamente para esses ambientes, essas limitações não foram adequadamente abordadas. Para enfrentar esse problema, esta dissertação propõe uma estrutura de armazenamento e indexação que melhora significativamente a confiabilidade do sistema e reduz o uso de memória volátil. A estrutura proposta tem como objetivo aumentar a eficiência e a robustez no gerenciamento, armazenamento e acesso a dados, sendo projetada para lidar com os altos volumes de transações típicos de ambientes IoT. Avaliações experimentais demonstram melhorias substanciais na escalabilidade do sistema e no desempenho geral da blockchain. Esses resultados destacam o potencial da abordagem para aprimorar significativamente a funcionalidade e a eficiência de sistemas blockchain em aplicações comerciais de IoT. Ao otimizar a SpeedyChain, este estudo contribui para superar limitações existentes e estabelece o caminho para implementações mais escaláveis e confiáveis da SpeedyChain.Blockchain technology has emerged as one of the most significant innovations of the last two decades. Since its proposal in 2008, blockchain applications have expanded beyond financial transactions to sectors such as agriculture, education, healthcare, and the Internet of Things (IoT). However, these applications face several limitations, particularly in IoT environments. This paper addresses some of these challenges by presenting improvements to SpeedyChain, an appendable-block blockchain. To enhance SpeedyChain, this study proposes a storage and indexing structure, which significantly improves the system’s reliability and reduces the volatile memory used. The proposed structure aims to enhance efficiency and robustness in managing, saving, and accessing data, being designed to handle the high transaction volumes typical in IoT environments. Experimental evaluations demonstrate substantial improvements in the system scalability and overall blockchain performance. These results highlight the potential of our approach to significantly enhance the functionality and efficiency of blockchain systems in commercial IoT applications. By optimizing SpeedyChain, this study contributes to overcoming existing limitations and sets the path for more scalable and reliable implementations of SpeedyChain
Btolerância A Falhas Para Processamento Stream Paralelo E Distribuido De Alto Nivel Em C++
O processamento de stream é um paradigma computacional voltado para a coleta, o processamento e a análise de fluxos contínuos de dados heterogêneos em grande volume, com o objetivo de extrair informações valiosas em tempo real. Considerando que esses sistemas precisam ser executados por longos períodos, às vezes indefinidamente, realizar o reprocessamento por completo dos dados em caso de falha pode ser extremamente custoso ou até inviável. Sendo assim, é fundamental que um sistema de processamento de stream não apenas se recupere de falhas, mas também garanta a integridade dos resultados. A SPar consiste em uma linguagem de domínio específico para C++ baseada em anotações, projetada para simplificar o desenvolvimento de aplicações de processamento de stream para múltiplas arquiteturas paralelas. Em arquiteturas distribuídas, a SPar gera código utilizando a DSParLib, que não fornece mecanismos de tolerância a falhas nem garantias de entrega de mensagens. Outras alternativas para programação paralela existentes na literatura, como o MPI, são APIs de baixo nível com suporte restrito para a implementação de aplicações paralelas resilientes. Grande parte das ferramentas no atual estado da arte em relação a programação paralela e distribuída para aplicações de stream com suporte à resiliência está disponível em Java. Diante desses fatores, o objetivo principal desta dissertação de mestrado consiste em investigar mecanismos de tolerância a falhas e semântica exactly-once para sistemas de processamento de stream, de forma que possam ser suportados no ecossistema de software SPar sem a necessidade de reescrever o código-fonte do usuário.Para esse fim, criamos a ResiPipe, uma biblioteca em C++ para o processamento de stream distribuído e tolerante a falhas, que se tornou parte do ecossistema SPar para executar código paralelo. Os resultados obtidos demonstram que a ResiPipe apresenta desempenho comparável, em alguns casos superior, a outras bibliotecas de processamento de stream analisadas, além de apresentar um menor número de linhas de código fonte (SLOC) por aplicação e uma estimativa de tempo de desenvolvimento reduzida, conforme o método de Halstead.Stream processing is a computing paradigm that addresses the gathering, processing, and analysis of a high-volume heterogeneous continuous data stream, aiming to extract valuable information in real-time. Considering the need for these systems to run for long periods, possibly indefinitely, reprocessing all data in case of failure can be highly costly or even unfeasible. Thus, it is essential for a stream processing system not only to recover after a failure but also to ensure that the generated results are correct. SPar is an annotation-based C++ domain-specific language designed to simplify the development of stream processing applications for multiple parallel architectures. In distributed architectures, SPar generates code using DSParLib, which does not provide fault tolerance mechanisms or strong message delivery guarantees. Other parallel programming alternatives in the literature, such as MPI, are low-level APIs with restrictive support for implementing resilient parallel applications. Most state-of-the-art distributed parallel programming tools for streaming applications with resilience support are available in Java. Given these factors, the main objective of this master’s thesis is to investigate fault tolerance and exactly-once semantics for streaming systems so that it is possible to support it on the SPar software ecosystem without rewriting the user source code. To this end, we created ResiPipe, a C++ library for fault-tolerant distributed stream processing that became a runtime system from the SPar ecosystem to execute parallel code. The results demonstrate that ResiPipe delivers performance comparable to, and in some cases superior to, other analyzed stream processing libraries, in addition to requiring fewer source lines of code (SLOC) per application and presenting a reduced estimated development time, according to Halstead’s method
Bparalelismo De Stream Em Multi-Gpu Para Multi-Cores
Atualmente, as arquiteturas de computadores dependem frequentemente de unidades de processamento gráfico (GPUs) para permitir a exploração massiva do paralelismo a um custo reduzido. Este paralelismo pode ser particularmente vantajoso no processamento de streams, um domínio de aplicações que processam continuamente um fluxo de dados de tamanho muitas vezes desconhecido. No entanto, o programador deve empregar programação paralela para explorar os recursos de hardware da GPU subjacente de forma eficiente. Isso pode ser desafiador, pois envolve refatorar algoritmos, usar técnicas de paralelismo e conhecer o hardware do ambiente, especialmente ao escrever código portável, uma vez que os fornecedores e gerações de GPU oferecem capacidades diferentes. Este desafio torna-se ainda mais complexo em ambientes multi-GPU; o programador deve escolher qual estratégia será utilizada para particionar seus dados, qual estratégia de escalonamento de tarefas será utilizada nas GPUs, como lidar com as necessidades de comunicação entre tarefas e como executar operações assíncronas na GPU. Para enfrentar esses desafios, pesquisadores se concentraram na investigação de técnicas de programação eficientes para GPUs e no desenvolvimento de abstrações que simplificam o processo de programação. Uma dessas abstrações é a SPar, uma linguagem de domínio específico (DSL) que permite a expressão do paralelismo de fluxo sem sacrificar o desempenho. Recentemente, foi adicionada uma extensão a SPar que permite a geração paralela de código para GPUs em aplicações de streaming. Para conseguir isso, a SPar realiza transformações de código fonte e gera código GPU usando uma biblioteca intermediária chamada GSParLib. No entanto, SPar oferece suporte à geração de código somente para ambientes com uma única GPU.Neste trabalho, investigamos como permitir a geração de código multi-GPU para processamento de streams e investigamos otimizações e técnicas para programação multi-GPU direcionado a sistemas multi-core. Nossas contribuições são um conjunto de algoritmos de escalonamento para fluxo de dados em multi-GPUs, que foram integrados na geração de código do SPar, suportando transparentemente o uso de multi-GPU em sistemas multi-core. Os resultados experimentais demonstraram que é possível simplificar a exploração de multi-GPU para aplicações de stream sem sacrificar o desempenho, utilizando políticas de escalonamento visando especificamente multi-GPU por meio de anotações de código como as fornecidas pelo SPar, alcançando resultados semelhantes às implementações manuais visando multi-GPU, enquanto tendo quase metade do número de linhas de código.Nowadays, computer architectures often rely on graphics processing units (GPUs) to allow massive parallelism exploitation at a lower cost. This parallelism can be particularly advantageous in stream processing, a domain of applications continuously processing a data flow of often unknown size. Nonetheless, the programmer must employ parallel programming to exploit underlying GPU hardware capabilities efficiently. This can be challenging since it involves refactoring algorithms, using parallelism techniques, and knowing about the environment’s hardware, especially when writing portable code, since GPU vendors and generations offer different capabilities. This challenge becomes even more complex in multi-GPU environments; the programmer must choose which strategy to partition their data, which strategy to schedule their tasks onto the GPUs, how to handle communication needs between tasks, and how to perform GPU asynchronous operations. To address these challenges, researchers have focused on investigating efficient programming techniques for GPUs and developing abstractions that simplify the programming process. One such abstraction is SPar, a domain-specific language (DSL) that enables the expression of stream parallelism without sacrificing performance. Recently, an extension was added to SPar that allows parallel code generation for GPUs in streaming applications. To achieve this, SPar performs source-to-source code transformations and generates GPU code using an intermediate library named GSParLib. Nonetheless, SPar supports code generation for a single GPU environment only. In this work, we investigate how to allow multi-GPU code generation for stream processing and investigate state-of-the-art optimizations and techniques for multi-GPU programming targeting multi-core systems.Our contributions are a set of data stream scheduling algorithms for multi-GPUs, which were integrated in the code generation of SPar, transparently supporting multi-GPU usage in multi-core systems. The experimental results demonstrated that it is possible to simplify the exploitation of multi-GPU for stream applications without sacrificing performance by utilizing scheduling policies specifically targeting multi-GPU through code annotations like the ones provided by SPar, achieving similar results to manual implementations targeting multi-GPU while having close to half the number of lines of code