15 resultados para Parallel programming (computer science)
em Instituto Politécnico do Porto, Portugal
Resumo:
Over the last three decades, computer architects have been able to achieve an increase in performance for single processors by, e.g., increasing clock speed, introducing cache memories and using instruction level parallelism. However, because of power consumption and heat dissipation constraints, this trend is going to cease. In recent times, hardware engineers have instead moved to new chip architectures with multiple processor cores on a single chip. With multi-core processors, applications can complete more total work than with one core alone. To take advantage of multi-core processors, parallel programming models are proposed as promising solutions for more effectively using multi-core processors. This paper discusses some of the existent models and frameworks for parallel programming, leading to outline a draft parallel programming model for Ada.
Resumo:
Article in Press, Corrected Proof
Resumo:
Managing programming exercises require several heterogeneous systems such as evaluation engines, learning objects repositories and exercise resolution environments. The coordination of networks of such disparate systems is rather complex. These tools would be too specific to incorporate in an e-Learning platform. Even if they could be provided as pluggable components, the burden of maintaining them would be prohibitive to institutions with few courses in those domains. This work presents a standard based approach for the coordination of a network of e-Learning systems participating on the automatic evaluation of programming exercises. The proposed approach uses a pivot component to orchestrate the interaction among all the systems using communication standards. This approach was validated through its effective use on classroom and we present some preliminary results.
Resumo:
Learning computer programming requires solving programming exercises. In computer programming courses teachers need to assess and give feedback to a large number of exercises. These tasks are time consuming and error-prone since there are many aspects relating to good programming that should be considered. In this context automatic assessment tools can play an important role helping teachers in grading tasks as well to assist students with automatic feedback. In spite of its usefulness, these tools lack integration mechanisms with other eLearning systems such as Learning Management Systems, Learning Objects Repositories or Integrated Development Environments. In this paper we provide a survey on programming evaluation systems. The survey gathers information on interoperability features of these systems, categorizing and comparing them regarding content and communication standardization. This work may prove useful to instructors and computer science educators when they have to choose an assessment system to be integrated in their e-Learning environment.
Resumo:
Face estagnao da tecnologia uniprocessador registada na passada dcada, aos principais fabricantes de microprocessadores encontraram na tecnologia multi-core a resposta `as crescentes necessidades de processamento do mercado. Durante anos, os desenvolvedores de software viram as suas aplicaes acompanhar os ganhos de performance conferidos por cada nova gerao de processadores sequenciais, mas `a medida que a capacidade de processamento escala em funo do nmero de processadores, a computao sequencial tem de ser decomposta em vrias partes concorrentes que possam executar em paralelo, para que possam utilizar as unidades de processamento adicionais e completar mais rapidamente. A programao paralela implica um paradigma completamente distinto da programao sequencial. Ao contrrio dos computadores sequenciais tipificados no modelo de Von Neumann, a heterogeneidade de arquiteturas paralelas requer modelos de programao paralela que abstraiam os programadores dos detalhes da arquitectura e simplifiquem o desenvolvimento de aplicaes concorrentes. Os modelos de programao paralela mais populares incitam os programadores a identificar instrues concorrentes na sua lgica de programao, e a especific-las sob a forma de tarefas que possam ser atribudas a processadores distintos para executarem em simultneo. Estas tarefas so tipicamente lanadas durante a execuo, e atribudas aos processadores pelo motor de execuo subjacente. Como os requisitos de processamento costumam ser variveis, e no so conhecidos a priori, o mapeamento de tarefas para processadores tem de ser determinado dinamicamente, em resposta a alteraes imprevisveis dos requisitos de execuo. `A medida que o volume da computao cresce, torna-se cada vez menos vivel garantir as suas restries temporais em plataformas uniprocessador. Enquanto os sistemas de tempo real se comeam a adaptar ao paradigma de computao paralela, h uma crescente aposta em integrar execues de tempo real com aplicaes interativas no mesmo hardware, num mundo em que a tecnologia se torna cada vez mais pequena, leve, ubqua, e portvel. Esta integrao requer solues de escalonamento que simultaneamente garantam os requisitos temporais das tarefas de tempo real e mantenham um nvel aceitvel de QoS para as restantes execues. Para tal, torna-se imperativo que as aplicaes de tempo real paralelizem, de forma a minimizar os seus tempos de resposta e maximizar a utilizao dos recursos de processamento. Isto introduz uma nova dimenso ao problema do escalonamento, que tem de responder de forma correcta a novos requisitos de execuo imprevisveis e rapidamente conjeturar o mapeamento de tarefas que melhor beneficie os critrios de performance do sistema. A tcnica de escalonamento baseado em servidores permite reservar uma frao da capacidade de processamento para a execuo de tarefas de tempo real, e assegurar que os efeitos de latncia na sua execuo no afectam as reservas estipuladas para outras execues. No caso de tarefas escalonadas pelo tempo de execuo mximo, ou tarefas com tempos de execuo variveis, torna-se provvel que a largura de banda estipulada no seja consumida por completo. Para melhorar a utilizao do sistema, os algoritmos de partilha de largura de banda (capacity-sharing) doam a capacidade no utilizada para a execuo de outras tarefas, mantendo as garantias de isolamento entre servidores. Com eficincia comprovada em termos de espao, tempo, e comunicao, o mecanismo de work-stealing tem vindo a ganhar popularidade como metodologia para o escalonamento de tarefas com paralelismo dinmico e irregular. O algoritmo p-CSWS combina escalonamento baseado em servidores com capacity-sharing e work-stealing para cobrir as necessidades de escalonamento dos sistemas abertos de tempo real. Enquanto o escalonamento em servidores permite partilhar os recursos de processamento sem interferncias a nvel dos atrasos, uma nova poltica de work-stealing que opera sobre o mecanismo de capacity-sharing aplica uma explorao de paralelismo que melhora os tempos de resposta das aplicaes e melhora a utilizao do sistema. Esta tese prope uma implementao do algoritmo p-CSWS para o Linux. Em concordncia com a estrutura modular do escalonador do Linux, e definida uma nova classe de escalonamento que visa avaliar a aplicabilidade da heurstica p-CSWS em circunstncias reais. Ultrapassados os obstculos intrnsecos `a programao da kernel do Linux, os extensos testes experimentais provam que o p-CSWS e mais do que um conceito terico atrativo, e que a explorao heurstica de paralelismo proposta pelo algoritmo beneficia os tempos de resposta das aplicaes de tempo real, bem como a performance e eficincia da plataforma multiprocessador.
Resumo:
This paper proposes two meta-heuristics (Genetic Algorithm and Evolutionary Particle Swarm Optimization) for solving a 15 bid-based case of Ancillary Services Dispatch in an Electricity Market. A Linear Programming approach is also included for comparison purposes. A test case based on the dispatch of Regulation Down, Regulation Up, Spinning Reserve and Non-Spinning Reserve services is used to demonstrate that the use of meta-heuristics is suitable for solving this kind of optimization problem. Faster execution times and lower computational resources requirements are the most relevant advantages of the used meta-heuristics when compared with the Linear Programming approach.
Resumo:
The filter method is a technique for solving nonlinear programming problems. The filter algorithm has two phases in each iteration. The first one reduces a measure of infeasibility, while in the second the objective function value is reduced. In real optimization problems, usually the objective function is not differentiable or its derivatives are unknown. In these cases it becomes essential to use optimization methods where the calculation of the derivatives or the verification of their existence is not necessary: direct search methods or derivative-free methods are examples of such techniques. In this work we present a new direct search method, based on simplex methods, for general constrained optimization that combines the features of simplex and filter methods. This method neither computes nor approximates derivatives, penalty constants or Lagrange multipliers.
Resumo:
E-Learning frameworks are conceptual tools to organize networks of elearning services. Most frameworks cover areas that go beyond the scope of e-learning, from course to financial management, and neglects the typical activities in everyday life of teachers and students at schools such as the creation, delivery, resolution and evaluation of assignments. This paper presents the Ensemble framework - an e-learning framework exclusively focused on the teaching-learning process through the coordination of pedagogical services. The framework presents an abstract data, integration and evaluation model based on content and communications specifications. These specifications must base the implementation of networks in specialized domains with complex evaluations. In this paper we specialize the framework for two domains with complex evaluation: computer programming and computer-aided design (CAD). For each domain we highlight two Ensemble hotspots: data and evaluations procedures. In the former we formally describe the exercise and present possible extensions. In the latter, we describe the automatic evaluation procedures.
Resumo:
In this paper we survey the most relevant results for the prioritybased schedulability analysis of real-time tasks, both for the fixed and dynamic priority assignment schemes. We give emphasis to the worst-case response time analysis in non-preemptive contexts, which is fundamental for the communication schedulability analysis. We define an architecture to support priority-based scheduling of messages at the application process level of a specific fieldbus communication network, the PROFIBUS. The proposed architecture improves the worst-case messages response time, overcoming the limitation of the first-come-first-served (FCFS) PROFIBUS queue implementations.
Resumo:
Multicore platforms have transformed parallelism into a main concern. Parallel programming models are being put forward to provide a better approach for application programmers to expose the opportunities for parallelism by pointing out potentially parallel regions within tasks, leaving the actual and dynamic scheduling of these regions onto processors to be performed at runtime, exploiting the maximum amount of parallelism. It is in this context that this paper proposes a scheduling approach that combines the constant-bandwidth server abstraction with a priority-aware work-stealing load balancing scheme which, while ensuring isolation among tasks, enables parallel tasks to be executed on more than one processor at a given time instant.
Resumo:
Computational Intelligence (CI) includes four main areas: Evolutionary Computation (genetic algorithms and genetic programming), Swarm Intelligence, Fuzzy Systems and Neural Networks. This article shows how CI techniques overpass the strict limits of Artificial Intelligence field and can help solving real problems from distinct engineering areas: Mechanical, Computer Science and Electrical Engineering.
Resumo:
Nos ltimos anos comearam a ser vulgares os computadores dotados de multiprocessadores e multi-cores. De modo a aproveitar eficientemente as novas caractersticas desse hardware comearam a surgir ferramentas para facilitar o desenvolvimento de software paralelo, atravs de linguagens e frameworks, adaptadas a diferentes linguagens. Com a grande difuso de redes de alta velocidade, tal como Gigabit Ethernet e a ltima gerao de redes Wi-Fi, abre-se a oportunidade de, alm de paralelizar o processamento entre processadores e cores, poder em simultneo paraleliz-lo entre mquinas diferentes. Ao modelo que permite paralelizar processamento localmente e em simultneo distribu-lo para mquinas que tambm tm capacidade de o paralelizar, chamou-se modelo paralelo distribudo. Nesta dissertao foram analisadas tcnicas e ferramentas utilizadas para fazer programao paralela e o trabalho que est feito dentro da rea de programao paralela e distribuda. Tendo estes dois factores em considerao foi proposta uma framework que tenta aplicar a simplicidade da programao paralela ao conceito paralelo distribudo. A proposta baseia-se na disponibilizao de uma framework em Java com uma interface de programao simples, de fcil aprendizagem e legibilidade que, de forma transparente, capaz de paralelizar e distribuir o processamento. Apesar de simples, existiu um esforo para a tornar configurvel de forma a adaptar-se ao mximo de situaes possvel. Nesta dissertao sero exploradas especialmente as questes relativas execuo e distribuio de trabalho, e a forma como o cdigo enviado de forma automtica pela rede, para outros ns cooperantes, evitando assim a instalao manual das aplicaes em todos os ns da rede. Para confirmar a validade deste conceito e das ideias defendidas nesta dissertao foi implementada esta framework qual se chamou DPF4j (Distributed Parallel Framework for JAVA) e foram feitos testes e retiradas mtricas para verificar a existncia de ganhos de performance em relao s solues j existentes.
Resumo:
This paper proposes and reports the development of an open source solution for the integrated management of Infrastructure as a Service (IaaS) cloud computing resources, through the use of a common API taxonomy, to incorporate open source and proprietary platforms. This research included two surveys on open source IaaS platforms (OpenNebula, OpenStack and CloudStack) and a proprietary platform (Parallels Automation for Cloud Infrastructure - PACI) as well as on IaaS abstraction solutions (jClouds, Libcloud and Deltacloud), followed by a thorough comparison to determine the best approach. The adopted implementation reuses the Apache Deltacloud open source abstraction framework, which relies on the development of software driver modules to interface with different IaaS platforms, and involved the development of a new Deltacloud driver for PACI. The resulting interoperable solution successfully incorporates OpenNebula, OpenStack (reuses pre-existing drivers) and PACI (includes the developed Deltacloud PACI driver) nodes and provides a Web dashboard and a Representational State Transfer (REST) interface library. The results of the exchanged data payload and time response tests performed are presented and discussed. The conclusions show that open source abstraction tools like Deltacloud allow the modular and integrated management of IaaS platforms (open source and proprietary), introduce relevant time and negligible data overheads and, as a result, can be adopted by Small and Medium-sized Enterprise (SME) cloud providers to circumvent the vendor lock-in problem whenever service response time is not critical.
Resumo:
Nos ltimos anos tem-se verificado um acentuado aumento na utilizao de dispositivos moveis a nvel internacional, pelo que as aplicaes desenvolvidas para este tipo especfico de dispositivos, conhecidas por apps, tem vindo a ganhar uma enorme popularidade. So cada vez mais as empresas que procuram estar presentes nos mais diversos sistemas operativos mveis, com o objectivo de suportar e desenvolver o seu negcio, alargando o seu leque de possveis consumidores. Neste sentido surgiram diversas ferramentas com a funo de facilitar o desenvolvimento de aplicaes mveis, denominadas frameworks multi-plataforma. Estas frameworks conduziram ao aparecimento de plataformas web, que permitem criar aplicaes multi-plataforma sem ser obrigatrio ter conhecimentos em programao. Assim, e a partir da anlise de vrios criadores online de aplicaes mveis identificados e das diferentes estratgias de desenvolvimento de aplicaes mveis existentes, foi proposta a implementao de uma plataforma web capaz de criar aplicaes nativas Android e iOS, dois dos sistemas operativos mais utilizados na actualidade. Apos desenvolvida a plataforma web, designada MobileAppBuilder, foi avaliada a sua Qualidade e as aplicaes criadas pela mesma, atravs do preenchimento de um questionrio por parte de 10 indivduos com formao em Engenharia Informtica, resultando numa classificao geral de excelente. De modo a analisar o desempenho das aplicaes produzidas pela plataforma desenvolvida, foram realizados testes comparativos entre uma aplicao da MobileAppBuilder e duas homologas de dois dos criadores online estudados, nomeadamente Andromo e Como. Os resultados destes testes revelaram que a MobileAppBuilder gera aplicaes menos pesadas, mais rpidas e mais eficientes em alguns aspetos, nomeadamente no arranque.
Resumo:
A Computao Evolutiva enquadra-se na rea da Inteligncia Artificial e um ramo das cincias da computao que tem vindo a ser aplicado na resoluo de problemas em diversas reas da Engenharia. Este trabalho apresenta o estado da arte da Computao Evolutiva, assim como algumas das suas aplicaes no ramo da eletrnica, denominada Eletrnica Evolutiva (ou Hardware Evolutivo), enfatizando a sntese de circuitos digitais combinatrios. Em primeiro lugar apresenta-se a Inteligncia Artificial, passando Computao Evolutiva, nas suas principais vertentes: os Algoritmos Evolutivos baseados no processo da evoluo das espcies de Charles Darwin e a Inteligncia dos Enxames baseada no comportamento coletivo de alguns animais. No que diz respeito aos Algoritmos Evolutivos, descrevem-se as estratgias evolutivas, a programao gentica, a programao evolutiva e com maior nfase, os Algoritmos Genticos. Em relao Inteligncia dos Enxames, descreve-se a otimizao por colnia de formigas e a otimizao por enxame de partculas. Em simultneo realizou-se tambm um estudo da Eletrnica Evolutiva, explicando sucintamente algumas das reas de aplicao, entre elas: a robtica, as FPGA, o roteamento de placas de circuito impresso, a sntese de circuitos digitais e analgicos, as telecomunicaes e os controladores. A ttulo de concretizar o estudo efetuado, apresenta-se um caso de estudo da aplicao dos algoritmos genticos na sntese de circuitos digitais combinatrios, com base na anlise e comparao de trs referncias de autores distintos. Com este estudo foi possvel comparar, no s os resultados obtidos por cada um dos autores, mas tambm a forma como os algoritmos genticos foram implementados, nomeadamente no que diz respeito aos parmetros, operadores genticos utilizados, funo de avaliao, implementao em hardware e tipo de codificao do circuito.