11 |
On algorithm design and programming model for multi-threaded computingHe, Zhengyu 27 March 2012 (has links)
The objective of this work is to investigate the algorithm design and the
programming model of multi-threaded computing. Designing multi-threaded
algorithms is very challenging - when multiple threads need to communicate or
coordinate with each other, efficient synchronization support is needed.
However, synchronizations are known to be expensive on the emerging
multi-/many-core processors, especially when the number of threads increases. To
fully unleash the power of such processors, carefully investigations are needed
in both algorithm design and programming models for multi-threaded systems.
In this dissertation, we first present an asynchronous multi-threaded algorithm
for the maximum network flow problem. This algorithm is based on the classical
push-relabel algorithm and completely removes the use of locks and barriers from
its original parallel version. While this algorithmic method shows
effectiveness, it is challenging to generalize the success to other
multi-threaded problem. We next focus on improving the transactional memory, a
promising mechanism to construct multi-threaded programs. A queuing-theory-based
model is developed to analyze the performance of different transactional memory
systems. Based on the results of the model, we emphasize on the contention
management mechanism of transactional memory systems. A profiling-based
adaptive contention management scheme is finally proposed to cope with the
problem that none of the static contention management schemes can keep good
performance on all platforms for all types of workload. From this research, we
show that it is necessary and worthwhile to explore both the algorithm design
aspect and the programming model aspect for multi-thread computing.
|
12 |
Scientific Computing on Multicore ArchitecturesTillenius, Martin January 2014 (has links)
Computer simulations are an indispensable tool for scientists to gain new insights about nature. Simulations of natural phenomena are usually large, and limited by the available computer resources. By using the computer resources more efficiently, larger and more detailed simulations can be performed, and more information can be extracted to help advance human knowledge. The topic of this thesis is how to make best use of modern computers for scientific computations. The challenge here is the high level of parallelism that is required to fully utilize the multicore processors in these systems. Starting from the basics, the primitives for synchronizing between threads are investigated. Hardware transactional memory is a new construct for this, which is evaluated for a new use of importance for scientific software: atomic updates of floating point values. The evaluation includes experiments on real hardware and comparisons against standard methods. Higher level programming models for shared memory parallelism are then considered. The state of the art for efficient use of multicore systems is dynamically scheduled task-based systems, where tasks can depend on data. In such systems, the software is divided up into many small tasks that are scheduled asynchronously according to their data dependencies. This enables a high level of parallelism, and avoids global barriers. A new system for managing task dependencies is developed in this thesis, based on data versioning. The system is implemented as a reusable software library, and shown to be as efficient or more efficient than other shared-memory task-based systems in experimental comparisons. The developed runtime system is then extended to distributed memory machines, and used for implementing a parallel version of a software for global climate simulations. By running the optimized and parallelized version on eight servers, an equally sized problem can be solved over 100 times faster than in the original sequential version. The parallel version also allowed significantly larger problems to be solved, previously unreachable due to memory constraints. / UPMARC / eSSENCE
|
13 |
Constructing an Index Fund Using Interior Point Primal- Dual MethodCelestin, Kamta, Galabe, Sampid Marius January 2011 (has links)
Optimization methods nowadays play a very important role in financial decisions such as portfolio managements, construction of index funds and pension funds. This Master Thesis is devoted to the problem of an index fund construction. The problem is represented as a linear optimization problem of re-balancing the portfolio at minimum cost and solved using the Primal-Dual interior point method. The index fund is constructed using ten companies from the Dow Jones Industrial Average Index (DJIA). The Primal-Dual interior point method was first implemented in Matlab and later on in Java.
|
14 |
A programming model and performance model for cycle stealingSumitomo, Jiro January 2006 (has links)
This work describes a programming model and performance model for cycle stealing on the Internet. Cycle stealing is the use of otherwise idle computers to perform work, and promises high performance computing at relatively low cost. The Internet, being the largest pool of potentially idle computers, is an obvious target for cycle stealing. However, computers connected to the Internet are often protected by firewalls, preventing point-to-point communication between them. The fluctuating avail-ability of computers for cycle stealing as they move in and out of an idle state, combined with the restricted communication of the Internet environment, means that programming models and abstractions suitable for programming supercom-puters and clusters are not ideal. Therefore, I have created a programming model for cycle stealing which reflects the types of parallel applications that are suitable for execution using idle computers connected to the Internet. The model is de-signed for use by non-expert parallel programmers, and I will show how it simpli-fies the development of cycle stealing applications, enabling rapid application de-velopment, and straightforward porting of existing sequential applications. This simple to use programming model, combined with the low cost of cycle stealing, improves the accessibility of high performance computing to non-traditional us-ers of supercomputers and clusters. Deployment on the Internet, and the need to navigate through firewalls, suggests a web based framework using common web protocols, web servers and web browsers. Part of this work investigates the feasibility of web based approaches to cycle stealing, from the setup of a cycle stealing system, application development and deployment, and connection of potentially idle computers. I designed and implemented a cycle stealing framework, deployable on the web, to meet expec-tations of performance, reliability, ease of use and safety. Existing cycle stealing frameworks emphasise the need for applications to be de-composed into a set of jobs that execute for a long period, that is, a job should have a computation time sufficient to justify its communication cost. However, there are no tools available for users to determine what an appropriate computa-tion time might be, given a job's data communication requirements. To date, de-ciding the granularity of jobs has been a matter of intuition. Therefore, a user may experience uncertainty as to the benefit of cycle stealing for their particular application, especially if the applications will have relatively short-lived jobs. Based on performance analysis of my framework, I have developed an analytical model and simulator, which can be used to predict, and help to optimise, the per-formance of user applications, and show the feasibility of executing a particular application using the cycle stealing framework.
|
15 |
Alocação de aeronaves a voos considerando restrições operacionais, de manutenção e de desempenho das aeronaves. / Aircraft assignment considering aircraft operational, maintenance and performance restrictions.João Carlos Medau 25 April 2017 (has links)
O problema de alocação de aeronaves a voos, ou tail assignment problem (TAP), consiste em determinar qual aeronave realizará cada voo da malha de uma empresa aérea, visando a minimizar o custo total da operação e respeitando diversas restrições de conectividade de voos, permanência de aeronaves no solo, serviços obrigatórios de manutenção, limitações técnicas e desempenho de aeronaves, conexões de passageiros e tripulantes e famílias com diversos modelos de aeronaves. Este trabalho apresenta um modelo matemático exato e um método heurístico para a solução do TAP considerando todas as restrições citadas, o que não ocorre com os modelos encontrados na literatura. Os modelos desenvolvidos, baseados em programação linear inteira e na meta-heurística Busca Tabu, foram aplicados a problemas reais, extraídos da malha de uma empresa aérea brasileira, operadora de 35 aeronaves e cerca de 210 voos diários. Os resultados obtidos são compatíveis com a operação da empresa e apresentam ganhos em relação ao método de alocação de aeronaves utilizado na operação diária. Os tempos de processamento para solução pelo método exato são excessivamente longos, indicando que o método heurístico é mais adequado para a utilização em empresas aéreas, com resultados adequados obtidos em tempos de processamento satisfatórios. / The problem known as Aircraft Assignment or Tail Assignment Problem (TAP) is the problem of assigning flights to each aircraft of an airline\'s fleet, aiming at minimizing the total operating cost while complying with several constraints, such as network connectivity, aircraft time on ground, mandatory maintenance services, aircraft technical restrictions, passengers and crew connections, aircraft performance and aircraft families with more than one type. This work presents a deterministic mathematical model and a heuristic method to solve the TAP considering all constraints listed above, what does not happen with the models found in the literature. The proposed methods, based on mathematical integer programming and on the Tabu Search metaheuristic, were applied to problems obtained from the network of a Brazilian airline, operating 35 aircraft and around 210 daily flights. The results show the models are suitable to solve the problem and savings are observed when compared to the current assignment method. The long processing times intrinsic to the deterministic method show the heuristic method is more suitable for use in airlines, with suitable results obtained at acceptable computational times.
|
16 |
Development and Implementation of a Network-Level Pavement Optimization ModelWang, Shuo January 2011 (has links)
No description available.
|
17 |
Developing a mathematical model for scheduling re-layout projectsVijayvargiya, Mool C. January 1994 (has links)
No description available.
|
18 |
Promoting Systematic Practices for Designing and Developing Edge Computing Applications via Middleware Abstractions and Performance EstimationDantas Cruz, Breno 09 April 2021 (has links)
Mobile, IoT, and wearable devices have been transitioning from passive consumers to active generators of massive amounts of user-generated data. Edge-based processing eliminates network bottlenecks and improves data privacy. However, developing edge applications remains hard, with developers often have to employ ad-hoc software development practices to meet their requirements. By doing so, developers introduce low-level and hard-to-maintain code to the codebase, which is error-prone, expensive to maintain, and vulnerable in terms of security.
The thesis of this research is that modular middleware abstractions, exemplar use cases, and ML-based performance estimation can make the design and development of edge applications more systematic. To prove this thesis, this dissertation comprises of three research thrusts: (1) understand the characteristics of edge-based applications, in terms of their runtime, architecture, and performance; (2) provide exemplary use cases to support the development of edge-based application; (3) innovate in the realm of middleware to address the unique challenges of edge-based data transfer and processing. We provide programming support and performance estimation methodologies to help edge-based application developers improve their software development practices.
This dissertation is based on three conference papers, presented at MOBILESoft 2018, VTC 2020, and IEEE SMDS 2020. / Doctor of Philosophy / Mobile, IoT, and wearable devices are generating massive volumes of user data. Processing this data can reveal valuable insights. For example, a wearable device collecting its user's vitals can use the collected data to provide health advice. Typically the collected data is sent to some remote computing resources for processing. However, due to the vastly increasing volumes of such data, it becomes infeasible to efficiently transfer it over the network. Edge computing is an emerging system architecture that employs nearby devices for processing and can be used to alleviate the aforementioned data transfer problem. However, it remains hard to design and develop edge computing applications, making it a task reserved for expert developers. This dissertation is concerned with democratizing the development of edge applications, so the task would become accessible for regular developers. The overriding idea is to make the design and implementation of edge applications more systematic by means of programming support, exemplary use cases, and methodologies.
|
19 |
Green Design of a Cellulosic Bio-butanol Supply Chain Network with Life Cycle AssessmentLiang, Li 03 October 2017 (has links)
The incentives and policies spearheaded by the U.S. government have created abundant opportunities for renewable fuel production and commercialization. Bio-butanol is a very promising renewable fuel for the future transportation market. Many efforts have been made to improve its production process, but seldom has bio-butanol research discussed the integration and optimization of a cellulosic bio-butanol supply chain network. This study focused on the development of a physical supply chain network and the optimization of a green supply chain network for cellulosic bio-butanol. To develop the physical supply chain network, the production process, material flow, physical supply chain participants, and supply chain logistics activities of cellulosic bio-butanol were identified by conducting an onsite visit and survey of current bio-fuel stakeholders. To optimize the green supply chain network for cellulosic bio-butanol, the life cycle analysis was integrated into a multi-objective linear programming model. With the objectives of maximizing the economic profits and minimizing the greenhouse gas emissions, the proposed model can optimize the location and size of a bio-butanol production plant. The mathematical model was applied to a case study in the state of Missouri, and solved the tradeoff between the feedstock and market availabilities of sorghum stem bio-butanol. The results of this research can be used to support the decision making process at the strategic, tactical, and operational levels of cellulosic bio-butanol commercialization and cellulosic bio-butanol supply chain optimization. The results of this research can also be used as an introductory guideline for beginners who are interested in cellulosic bio-butanol commercialization and supply chain design. / Ph. D.
|
20 |
Hierarchical message passing through a ProActive/GCM based runtime / Passagem de mensagem hierárquica através de um runtime baseado em ProActive/GCMMathias, Elton Nicoletti January 2010 (has links)
Nos últimos anos, computação em grade tem emergido como uma forma de utilização de recursos geograficamente distribuídos em múltiplas organizações. Devido ao fato de grids serem altamente distribuídos e compostos por recursos heterogêneos, a computação em grade tem dado importância a requisitos específicos, como escalabilidade, desempenho e a necessidade de um modelo de programação adequado. Vários modelos de programação já foram propostos para a computação em grade. Entretanto, ate agora, nenhum deles supriu todos os requisitos. Diferentemente, na área de alto desempenho em clusters, o modelo de passagem de mensagens se tornou um verdadeiro padrão com um grande número de bibliotecas e aplicações legadas. Este trabalho propõe um framework híbrido que combina os altos desempenho e aceitação do padrão MPI, melhorado com extensões intuitivas para permitir aos desenvolvedores o projeto e desenvolvimento de aplicações em grade ou a gridi-ficação de aplicações já existentes, com a flexibilidade de um runtime baseado em componentes, modelando uma hierarquia de recursos e suportando a comunicação entre clusters. A solução proposta se baseia na adição de comunicadores MPI e uma API relacionada, a qual oferece um suporte ao desenvolvimento de aplicações que levam em conta a topologia hierárquica de grades computacionais, adequado a desenvolvedores habituados a MPI. características (Simula_c~ao Baseada no Algoritmo de Monte Carlo, Mergesort e um solver Poisson3D) mostraram que a gridificação pode melhorar consideravelmente o desempenho dessas aplicações em ambientes de grade. Ainda que o objetivo deste trabalho não seja competir com distribuições MPI existentes, o desempenho da solução proposta _e comparável ao desempenho de MPI, sendo melhor em alguns casos. A partir dos resultados obtidos com o protótipo apresentado, é possível concluir que o custo adicionado pela utilização de componentes não é desprezível, mas dentro do esperado. Entretanto, espera-se que os benefícios para aplicações de grade devem superar os custos adicionais. Além disso, as extensões a interface MPI oferecem a usuários as abstrações necessárias ao projeto de algoritmos paralelos de forma hierárquica, visando ambientes de grade. / In the past several years, grid computing has emerged as a way to harness computing resources geographically distributed across multiple organizations. Due to its inherently largely distributed and heterogeneous nature, grid computing has enlarged the importance of specific requirements, such as scalability, performance and the need of an adequate programming model. Several programming models have been proposed for grid programming. Nonetheless, so far, none of them met all the requirements. Differently, in the field of high performance cluster computing, the message passing model became a true standard with a large number of libraries and legacy applications. This work proposes a hybrid framework that combines the high performance and high acceptability of the MPI standard boosted with intuitive extensions to enable developers to design grid applications or "gridify" existing ones with the flexibility of a component-based runtime modeling resources hierarchy and offering support to inter-cluster communication. The proposed solution relies on the addition of new MPI communicators and a related API, which may offer a support well-suited to programmers used to MPI in order to reflect a hierarchical topology within the deployed application. Carlo Simulation, a Mergesort and a Poissond3D solver) have shown that the "gridification" of applications improve application performance on grid environments. Even if the goal is not to compete against existing MPI distributions, the performance of the solution is comparable with MPI performance, even better in some cases. From the results obtained in the evaluation of this prototype, we conclude that the overhead introduced by the components is not negligible, but inside of the expected. However, we can expect the benefits to grid applications to bypass the generated overhead. Besides, the extended interface may offer users the adequate abstractions to design parallel algorithms in a hierarchical way addressing grid environments.
|
Page generated in 0.0997 seconds