1,721,020 research outputs found

    Automatic content adaptation applied in an interactive environment with individualized learning.

    No full text
    Sistemas tutores inteligentes têm se destacado como ferramenta de apoio ao ensino, principalmente pela sua adaptação às condições do usuário e cenário de aplicação. Esta adaptabilidade é possível pela utilização de inteligência artificial. Além disso, a tarefa de ensino é melhor conduzida aplicando-se técnicas como aprendizagem de máquina, processamento de linguagem natural e mineração de dados para adequar o sistema a partir de informações coletadas do usuário em sua utilização. Apesar disso, essas técnicas ainda não são fortemente exploradas para geração de conteúdo em sistemas tutores. A maioria das aplicações envolve o controle das informações e a orientação dos estudos de seus usuários por meio de recomendação de conteúdo existente. A produção de conteúdo personalizado surge, nesse cenário, como alternativa ao processo de simples recomendação, permitindo que conteúdos apresentem diferentes formatos segundo a personalidade de cada usuário. Este trabalho desenvolveu uma metodologia de adaptação de conteúdo para ensino, aplicando técnicas de processamento de texto. O processo de produção de conteúdo personalizado permitiu um avanço na forma de uso de sistemas tutores no ensino quanto a geração de conteúdo. Como resultado foi obtido um modelo, com ferramenta aplicada ao contexto, para adaptação automática de conteúdo construído com base em estilos de aprendizagem.Intelligent tutoring systems have stood out as a teaching support tool, mainly due to their ability to adapt to user conditions and application scenarios. This adaptability is possible through the use of artificial intelligence. Furthermore, the creation and adaptation of materials for the system is best conducted by applying techniques such as machine learning, natural language processing and data mining. Despite this, these techniques are not yet heavily explored for generating content in tutoring systems. Most applications involve controlling information and guiding their users' studies by recommending existing content. The production of personalized content appears, in this scenario, as an alternative to the simple recommendation process, allowing content to present different formats according to the personality of each user. This work developed a methodology for adapting teaching content, applying natural language processing techniques. The process of producing personalized content allowed an advance in the way tutoring systems are used in teaching regarding content generation. As a result, a model was obtained, with a tool applied to the context, for automatic adaptation of content based on learning styles

    Exploiting software transactional memory in the context of asymmetric architectures

    Full text link
    Orientador: Paulo Cesar CentoducatteTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: A adoção dos microprocessadores com múltiplos núcleos de execução pela indústria semicondutora tem criado uma crescente necessidade por novas linguagens, metodologias e ferramentas que tornem o desenvolvimento de sistemas concorrentes mais rápido, eficiente e acessível aos programadores de todos os níveis. Uma das principais dificuldades em programação concorrente com memória compartilhada é garantir a correta sincronização do código, evitando assim condições de corrida que podem levar o sistema a um estado inconsistente. A sincronização tem sido tradicionalmente realizada através de métodos baseados em travas, reconhecidos amplamente por serem de difícil uso e pelas anomalias causadas. Um novo mecanismo, conhecido como memória transacional (TM), tem sido alvo de muita pesquisa recentemente e promete simplificar o processo de sincronização, além de possibilitar maior oportunidade para extração de paralelismo e consequente desempenho. O cerne desta tese é formado por três trabalhos desenvolvidos no contexto dos sistemas de memória transacional em software (STM). Primeiramente, apresentamos uma implementação de STM para processadores assimétricos, usando a arquitetura Cell/B.E. como foco. Como principal resultado, constatamos que o uso de sistemas transacionais em arquiteturas assimétricas também é promissor, principalmente pelo fator escalabilidade. No segundo trabalho, adotamos uma abordagem diferente e sugerimos um sistema de STM especialmente voltado para o domínio de jogos computacionais. O principal motivo que nos levou nesta direção é o baixo desempenho das implementações atuais de STM. Um estudo de caso conduzido a partir de um jogo complexo mostra a eficácia do sistema proposto. Finalmente, apresentamos pela primeira vez uma caracterização do consumo de energia de um sistema de STM considerado estado da arte. Além da caracterização, também propomos uma técnica para redução do consumo em casos de alta contenção. Resultados obtidos a partir dessa técnica revelam ganhos de até 87% no consumo de energiaAbstract: The shift towards multicore processors taken by the semiconductor industry has initiated an era in which new languages, methodologies and tools are of paramount importance to the development of efficient concurrent systems that can be built in a timely way by all kinds of programmers. One of the main obstacles faced by programmers when dealing with shared memory programming concerns the use of synchronization mechanisms so as to avoid race conditions that could possibly lead the system to an inconsistent state. Synchronization has been traditionally achieved by means of locks (or variations thereof), widely known by their anomalies and hard-to-get-it-right facets. A new mechanism, known as transactional memory (TM), has recently been the focus of a lot of research and shows potential to simplify code synchronization as well as delivering more parallelism and, therefore, better performance. This thesis presents three works focused on different aspects of software transactional memory (STM) systems. Firstly, we show an STM implementation for asymmetric processors, focusing on the architecture of Cell/B.E. As an important result, we find out that memory transactions are indeed promising for asymmetric architectures, specially due to their scalability. Secondly, we take a different approach to STM implementation by devising a system specially targeted at computer games. The decision was guided by poor performance figures usually seen on current STM implementations. We also conduct a case study using a complex game that effectively shows the system's efficiency. Finally, we present the energy consumption characterization of a state-of-the-art STM for the first time. Based on the observed characterization, we also propose a technique aimed at reducing energy consumption in highly contended scenarios. Our results show that the technique is indeed effective in such cases, improving the energy consumption by up to 87%DoutoradoSistemas de ComputaçãoDoutor em Ciência da Computaçã

    Transaction scheduling using dynamic conflict avoidance

    No full text
    Software transaction memory (STM) systems have been used as an approach to improve performance, by allowing the concurrent execution of atomic blocks. However, under high-contention workloads, STM-based systems can considerably degrade performance, as transaction conflict rate increases. Contention management policies have been used as a way to select which transaction to abort when a conflict occurs. In general, contention managers are not capable of avoiding conflicts, as they can only select which transaction to abort and the moment it should restart. Since contention managers act only after a conflict is detected, it becomes harder to effectively increase transaction throughput. More proactive approaches have emerged, aiming at predicting when a transaction is likely to abort, postponing its execution. Nevertheless, most of the proposed proactive techniques are limited, as they do not replace the doomed transaction by another or, when they do, they rely on the operating system for that, having little or no control on which transaction to run. This article proposes LUTS, a lightweight user-level transaction scheduler. Unlike other techniques, LUTS provides the means for selecting another transaction to run in parallel, thus improving system throughput. We discuss LUTS design and propose a dynamic conflict-avoidance heuristic built around its scheduling capabilities. Experimental results, conducted with the STAMP and STMBench7 benchmark suites, running on TinySTM and SwissTM, show how our conflict-avoidance heuristic can effectively improve STM performance on high contention applications. © 2012 Springer Science+Business Media, LLC.Institute of Computing UNICAMP, Campinas SPUniv Estadual Paulista, Rio-Claro SPUniv Estadual Paulista, Rio-Claro S

    Automatic generation of assemblers using ArchC

    No full text
    Orientador: Paulo Cesar CentoducatteDissertação (mestrado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: Projetistas de sistemas dedicados enfrentam atualmente novos desafios em todas as fases do projeto. A difusão da tecnologia conhecida como SoC (System on a Chip) requer novos paradigmas para a especificação, implementação e verificação do projeto. A alta complexidade de tais sistemas e a grande variedade de configurações disponíveis podem tornar a escolha do sistema ideal demorada, prolongando o tempo de projeto e conseqüentemente seu ingresso no mercado. Em especial, no processo de escolha de um certo processador, o projetista necessita de um conjunto básico de ferramentas que lhe permitam analisar questões como desempenho, potência consumida, ou ainda área de silício ocupada. Exemplos de ferramentas importantes nessa fase de avaliação do projeto incluem compiladores, montadores e simuladores de instruções. Nesse contexto, o uso de uma linguagem para descrição de arquitetura (Architecture Description Language, ADL) permite que processadores sejam modelados em níveis altos de abstração, e que um conjunto de ferramentas específicas para o modelo descrito seja gerado automaticamente. ArchC é uma ADL em desenvolvimento no Laboratório de Sistemas de Computação (IC-UNICAMP), e já é capaz de gerar ferramentas de simulação de instruções automaticamente. Desenvolvemos neste trabalho uma ferramenta para geração automática de montadores a partir de modelos descritos em ArchC, denominada acasm 2. O desenvolvimento de acasm nos levou a incorporar novas construções a ArchC para a modelagem da linguagem de montagem e da codificação das instruções. Nossa ferramenta gera um conjunto de arquivos dependentes de arquitetura para o redirecionamento do montador GNU Assembler (gas). Usamos acasm para gerar montadores a partir de modelos, em ArchC, das arquiteturas MIPS-I e SPARC-V8, e comparamos os arquivos objetos obtidos com os gerados pelo montador gas nativo para ambas arquiteturas. Os resultados mostraram que os arquivos gerados pelo nosso montador foram idênticos aos gerados pelo montador nativo para ambas arquiteturasAbstract: Nowadays, embedded systems designers are facing new challenges at all stages of the design process. The growing of the system-on-chip (SoC) technology is creating new paradigms in the specification, implementation and verification phases of a design. The increasing complexity and the myriad of available configurations make it hard to choose the ideal system, therefore lengthening the design time, as well as time to market. Specially, customization of the processor architecture requires a software toolkit in order to estimate factors such as performance, power dissipation and chip area. Examples of these tools may include compilers, assemblers and instruction level simulators. In this context, the use of an architecture description language (ADL) allows one to model processors using different levels of abstraction. Based on the model, a software toolkit can be automatically generated. ArchC is an ADL being developed by the Computer Systems Laboratory (IC-UNICAMP) and can automatically generate instruction level simulators at its current stage. In this work, we have created a tool to automatically generate assemblers from ArchC models, named acasm 3. While developing acasm we have introduced new language constructions to ArchC in order to describe the assembly language syntax and the instruction encoding scheme. Our tool retargets the GNU assembler (gas) to different architectures by generating a set of architecture depedent files based on ArchC models. We used acasm to generate assemblers to the MIPS-I and SPARC-V8 architectures based on our ArchC models. We then compared the object files created by our assemblers with the ones created by the native gas and no difference between each pair of files was noticed, for both architecturesMestradoMestre em Ciência da Computaçã

    Going Beyond Counting First Authors in Author Co-citation Analysis

    Full text link
    The present study examines one of the fundamental aspects of author co-citation analysis (ACA) - the way co-citation counts are defined. Co-citation counting provides the data on which all subsequent statistical analyses and mappings are based, and we compare ACA results based on two different types of co-citation counting - the traditional type that only counts the first one among a cited work's authors on the one hand and a non-traditional type that takes into account the first 5 authors of a cited work on the other hand. Results indicate that the picture produced through this non-traditional author co-citation counting contains more coherent author groups and is therefore considerably clearer. However, this picture represents fewer specialties in the research field being studied than that produced through the traditional first-author co-citation counting when the same number of top-ranked authors is selected and analyzed. Reasons for these effects are discussed

    Physical rehabilitation through digital games: an approach based on fuzzy logic, depth camera and wearable sensors

    No full text
    O presente trabalho visa a construção de uma ferramenta de auxílio para profissionais da fisioterapia, que promova por meio de tecnologias da computação, como a lógica Fuzzy, um tratamento personalizado, motivador e eficaz. Inicialmente fez-se uma verificação da literatura e trabalhos que relacionem reabilitação com tecnologia (incluindo ambientes virtuais imersivos e não imersivos), seguida de uma análise das necessidades da fisioterapia para, enfim, criar uma proposta de solução computacional. O problema encontrado consiste da necessidade de uma ferramenta motivadora (mantenha a assiduidade do paciente), que apresente dados da progressão do paciente e seja de fácil utilização (pelo paciente e fisioterapeuta). A solução computacional envolve câmera de profundidade e sensores vestíveis para obter dados corporais e, com análise de dados e utilização de métodos de inteligência artificial, consiga prover uma forma intuitiva, motivadora e eficiente para o tratamento fisioterapêutico. Resultados mostram a aplicabilidade da proposta em obter os valores biométricos, a criação de exercícios personalizados, os jogos motivacionais com dificuldade dinâmica por meio da lógica Fuzzy proposta e a visualização do progresso dos pacientes.The present work aims to build an assist tool to physiotherapists that, through computer science technologies, such as Fuzzy logic, can promote a personalized, motivating and efficient treatment. Initially a literature review and works related to technologies and health were analyzed, followed by an analysis of the physiotherapy needs so that a computer solution could be proposed. The issue found consists in the need of a motivational tool (which can keep the attendance of the patient), that shows progressive data of the patient and is of ease use (both by the patient and physiotherapist). The computer solution uses a depth camera (such as MS Kinect) and wearable sensors to obtain the body data and, through data analysis and artificial intelligence methods, make an intuitive, motivational and efficient solution for the physical treatment. Results shows the applicability of the proposal in obtaining the biometric data, the creation of custom virtual exercises, the motivational games with dynamic difficulty through the Fuzzy logic and the visualization of the patient progress.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES

    FGSCM: a transactional lock elision approach with fine-grained conflict resolution

    No full text
    Omissão de lock é uma técnica onde operações de aquisição e liberação de lock são omitidas (especulação) de forma a permitir que regiões críticas compartilhando um mesmo lock possam executar concorrentemente, permitindo assim se explorar um nível maior de concorrência em programas que utilizam esse método popular de sincronização. Para se manter o princípio de atomicidade, as modificações no estado do programa realizadas pela região crítica são mantidas em um buffer interno e são efetivadas apenas ao fim da mesma. Em caso de inconsistências, diferentes políticas em como proceder são possíveis, o que diferencia as diversas abordagens de omissão de lock encontradas na literatura. Por exemplo, a abordagem original, Speculative Lock Elision (SLE), que é implementada no nível microarquitetural, recorre a adquirir o lock de forma tradicional quando uma especulação falha. Em algumas situações, esta política conservadora acaba por restringir o ganho em desempenho originalmente pretendido por impor um volume de sincronização desnecessário (lemming effect). Uma forma de superar tal limitação é o emprego de omissão de lock transacional (Transactional Lock Elision, em inglês), onde a especulação de regiões críticas se dá por meio de transações e o controle de execução é devolvido ao software em eventos de transações abortadas, o que permite que diferentes estratégias sejam empregadas com o objetivo de permitir execução concorrente mesmo em presença de falha de especulação. Neste contexto, uma das abordagens possíveis é o esquema chamado Software-assisted Conflict Management (SCM), onde um lock auxiliar é utilizado para sincronizar transações abortadas e, assim, manter o lock original livre, permitindo que outras transações prossigam sua execução. No presente trabalho, uma extensão ao SCM é proposta, o esquema Fine-grained Software-assisted Conflict Management (FGSCM), onde múltiplos locks são utilizados para permitir que transações abortadas por conflitos em diferentes regiões de memória possam ser executadas de forma concorrente. O algoritmo proposto foi implementado utilizando a interface RTM da extensão Intel® TSX e experimentos foram realizados em um máquina quadcore, para os quais, em casos com predominância de operações de leitura em memória, observou-se um ganho em desempenho médio de 11% e 36% com relação à abordagem SCM original e ao uso de um spin lock comum, respectivamente.Lock elision is a technique that omits acquire/release lock operations (speculation) so as to allow critical regions sharing the same lock to run concurrently, which yields a higher level of concurrency explored by programs that use such popular synchronization mechanism. In order to honor atomicity, modifications on the program's state made by the critical regions are kept in an internal buffer and only applied at the end of the speculation. If inconsistency is found, different policies on how to proceed are possible, which make up the several existing approaches found in the literature. As an example, the original one, namely Speculative Lock Elision (SLE), which is implemented at the level of microarchitecture, falls back to acquire the lock in a standard manner when there is speculation error. In some situations, such conservative policy ends up restricting the intended performance gains due to the unnecessary synchronization imposed (lemming effect). A way to address this issue is through Transactional Lock Elision (TLE) techniques, in which speculation of critical regions is done by means of transactions and execution control is passed back to software on abort events, which makes possible the use of different strategies to allow concurrent execution even in presence of speculation error. In this context, one possible approach is called Software-assisted Conflict Management (SCM), where an auxiliary lock is used to serialize aborted transactions and, as such, keep the original one free, so that others may proceed on their execution. The work presented in this document proposes an extension of SCM, called Fine-grained Software-assisted Conflict Management (FGSCM), where multiple auxiliary locks are applied in order to allow transactions aborted due to conflict on different regions of memory to be executed concurrently. The proposed algorithm was implemented by using the RTM interface from Intel®'s TSX extension and experiments were performed on a quadcore machine. On read-dominated workloads, an average performance gain of 11% and 36% was observed against the original SCM and a typical spin lock, respectively

    Performance optimization of persistent memory systems through phase-based transactions

    No full text
    As emergentes tecnologias de memória persistente (PM) visam eliminar a lacuna existente entre a memória principal e a secundária. No entanto, os sistemas atuais não são capazes de usufruir totalmente dos benefícios proporcionados por estas, essencialmente devido a possíveis falhas de sistema que podem resultar em um estado inconsistente e irrecuperável. Além disto, o uso simplista da PM resulta em uma degradação de desempenho, advinda do alto custo associado às operações de escrita. Neste contexto, o uso de transações duráveis é uma das abordagens mais investigadas para facilitar a adoção da PM. Em particular, implementações de memória transacional em hardware (HTM) possibilitam a execução de transações com uma sobrecarga mínima, porém apresentam limitações de recursos. Embora as transações em software (STM) sejam flexíveis e não possuam tais limitações, estas não apresentam um bom desempenho na execução de transações curtas. Esta dissertação apresenta a solução NV-PhTM, um sistema transacional baseado em fases capaz de alterar dinamicamente o modo de execução, software ou hardware, mediante as características apresentadas pelas aplicações. A implementação do NV-PhTM foi embasada pelo sistema PhTM*, um arcabouço que provê um conjunto de heurísticas para guiar a transição e seleção do melhor modo de execução (HW/SW). O PhTM*, no entanto, foi concebido para ambientes de memória volátil. Neste contexto, o NV-PhTM propõe novas heurísticas visando contemplar as estratégias de garantia de durabilidade e as características da PM. Visando manter a corretude do sistema, estratégias foram elaboradas a fim de garantir a persistência durante a transição entre as fases. O NV-PhTM é o primeiro sistema transacional baseado em fases a prover transações duráveis. Os resultados experimentais obtidos, na execução do benchmark STAMP, comprovam a eficácia das novas heurísticas em guiar a transição das fases. Quando comparado ao NV-HTM (solução exclusivamente em hardware) e ao PSTM (solução exclusivamente em software), o NV-PhTM obteve os melhores resultados devido a sua natureza de seguir o sistema com melhor desempenho.The emerging persistent memory technologies (PM) are aimed to eliminate the gap between main memory and storage. Nevertheless, today’s programs will not readily benefit from them essentially because crash failures might render the program in an unrecoverable and inconsistent state. In addition, naive utilization of PM leads to performance degradation, mainly due to expensive writes. In this context, the usage of durable transactions is one of the main investigated approaches to ease the adoption of non-volatile memory. In particular, hardware transactional memories (HTM) provide low-overhead but are resource-constrained. Although software transactions (STM) are flexible and unbounded, they may significantly hurt the performance of short-lived transactions. This dissertation presents NV-PhTM, a transactional system for PM that delivers the best out of both HW and SW transactions by dynamically changing the execution according to the characteristics of the application. NV-PhTM is built upon the PhTM* system, a framework that provides a set of heuristics to guide phase transition and selects the best execution mode (HW/SW). PhTM*, however, did not take into account PM systems. Designing NV-PhTM required new heuristics that consider the nature of durability strategies and the characteristics of PM. In order to keep the accuracy of the system, new strategies were elaborated to guarantee persistency between phase transitions. NV-PhTM is the first phase-based system to provide durable transactions. Experimental results with the STAMP benchmark show that the proposed heuristics are efficient in guiding phase transitions with low overhead. When compared to NV-HTM (hardware-only durable transactions) and PSTM (software-only durable transactions), NV-PhTM provided the best overall results due to its nature of following the best performing system.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES

    PhTM*: an efficient implementation of phased transactions

    No full text
    As evidentes limitações em se explorar o aumento de frequência e otimização no nível de microarquitetura para obtenção de desempenho levaram a indústria de microprocessadores a buscar alternativas para suprir tal demanda. A solução encontrada foi construir arquiteturas com múltiplos fluxos de execução (multicore). No entanto, a utilização imediata do modelo paralelo exige que os programadores precisem explicitamente codificar as aplicações de forma a usar todos os núcleos, tarefa essa nada trivial e passível de erros que, muitas vezes, são difíceis de serem detectados. Um novo modelo de programação concorrente conhecido como memória transacional (Transactional Memory – TM) oferece abstrações para fácil codificação de aplicações e é capaz de explorar o paralelismo das arquiteturas multicore sem exigir conhecimentos da arquitetura por parte do programador. Porém, as implementações desse modelo, em software ou hardware, isoladamente apresentam problemas que limitam a escalabilidade das aplicações. Objetivando resolver tais problemas, foram propostos sistemas híbridos de transações em hardware e software para melhor exploração do paralelismo, denominado Memória Transacional Híbrida (Hybrid Transactional Memory – HyTM). A flexibilidade dos sitemas híbridos convencionais, mesmo permitindo executar transações em hardware e software simultaneamente, reduzem o desempenho de ambos seus componentes e tornam mais complexa a implementação da componente em software. Nesse sentido, este trabalho apresenta a primeira implementação eficiente (PhTM*) de um sistema de transações em fases, proposto como alternativa aos HyTMs convencionais. O PhTM* elimina a instrumentação das transações em hardware, necessária em outros HyTMs, e permite utilizar qualquer STM, sem nenhuma modificação, para executar as transações em software. A proposta é a primeira a utilizar o suporte transacioal em hardware disponível em um processador real (não-emulado), para executar as transações em hardware. Os resultados mostram que o PhTM* foi capaz de escolher o modo mais adequado para todas as aplicações do STAMP utilizadas. De fato, o PhTM* apresentou o melhor desempenho entre os sistemas transacionais avaliados e foi cerca de 12% melhor que o HyTM-NOrec, sistema híbrido considerado baseline na avaliação de novos HyTMs.The limited performance gain due to micro-architectural optimizations and the modest increase in clock rate led the microprocessor industry to seek alternatives to single-core processors in order to keep up with the performance demand. The solution found was to build architectures with multiple execution flows (multicore). Nonetheless, the parallel model’s immediate adoption requires programmers to explicitly code applications in a way that all cores are used. Yet this task has proven to be non-trivial and prone to errors, which are generally hard to detect. A new concurrent programming model known as transactional memory (TM) brings abstractions that ease the synchronization burdens of parallel coding and enables programmers to better exploit the parallelism of multicore architectures without knowing their details. However, software and hardware implementations of the TM model have proven to be limited when adopted in isolation. Hybrid transactional systems (HyTM) are the proposed solution to these problems, allowing applications to benefit from multicore machines. The flexibility of conventional hybrid systems, even though allowing simultaneous execution of hardware and software transactions, decrease the performance of both hardware and software and increase the complexity of the software component. In this direction, this work presents the first eficient implementation (PhTM*) of phase-based transactional system, a viable alternative to conventional HyTMs. PhTM* removes the aditional instrumentation of hardware transactions, necessary in other HyTMs, and can use any STM library to execute software transactions. The proposal is the first to use hardware transactional support, available in a real (not emulated) processor, to run hardware transactions. The results show that PhTM* is capable of always choosing the best suited mode for all STAMP applications. In fact, PhTM* showed the best overall performance and was about 12% better then HyTM-NOrec, a de facto baseline in HyTM evaluation.Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP)FAPESP: 2014/00534-
    corecore