[en] AN ABSTRACTION FOR PARALLEL PROGRAMMING: SUPPORT FOR DEVEDEVELOPING
[pt] A evolução do campo de programação tradicionalmente troca desempenho por abstrações mais poderosas capazes de simplificar o trabalho do programador. É possível observar os efeitos dessa evolução na área de programação paralela. Tipicamente, a programação paralela se concentra em alto desempenho...
Main Author: | |
---|---|
Other Authors: | |
Language: | pt |
Published: |
MAXWELL
2012
|
Subjects: | |
Online Access: | https://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=19256@1 https://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=19256@2 http://doi.org/10.17771/PUCRio.acad.19256 |
Summary: | [pt] A evolução do campo de programação tradicionalmente troca desempenho
por abstrações mais poderosas capazes de simplificar o trabalho do programador. É
possível observar os efeitos dessa evolução na área de programação
paralela. Tipicamente, a programação paralela se concentra em alto desempenho
baseado no paradigma procedural para atingir o mais alto rendimento
possível, porém determinar o ponto em que deve-se trocar desempenho por
abstrações mais poderosas continua um problema em aberto. Com o advento
de novas ferramentas e bibliotecas de sistema que fornecem melhor desempenho
sem a intervenção do programador, a crença de que o programador da
aplicação deve otimizar o código de comunicação começa a ser questionada.
De acordo com a crescente demanda por soluções paralelas de larga escala
tornando-se evidentes, problemas como complexidade de código, poder de
modelagem e projeto, manutenibilidade, desenvolvimento rápido, maior segurança e reuso, deverão ser considerados quando for necessário decidir que
abordagem usar. Nesse trabalho, investigamos o custo do uso de camadas
de abstração de mais alto-nível e que podem prover muitos benefícios para
desenvolvedores de aplicações paralelas. Além disso argumentamos que o
uso de linguagens interpretadas pode ajudar na abstração da arquitetura
de processador surgindo a oportunidade para otimizar as máquinas virtuais
sem que isso afete o código da aplicação do usuário. === [en] The evolution of the field of programming traditionally trades performance
for more powerful abstractions that are able to simplify the programmer’s
work. It is possible to observe the effects of this evolution on the parallel
programming area. Typically parallel programming focuses on high performance
based on the procedural paradigm to achieve the highest possible
throughput, but determining the point in which one should trade performance
for more powerful abstractions remains an open problem. With the
advent of new system level tools and libraries that deliver greater performance
without programmer’s intervention, the belief that the application
programmer should optimize communication code starts to be challenged.
As the growing demand for large scale parallel solutions becomes noticeable,
problems like code complexity, design and modeling power, maintainability,
faster development, greater reliability and reuse, are expected to take part
on the decision of which approach to use. In the present work, we investigate
the use of higher-level abstraction layers that could provide many benefits
for the parallel application developer. We argue that the use of interpreted
languages may aid the abstraction of the processor architecture providing
an opportunity to optimize the virtual machines without affecting the user’s
application code. |
---|