[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...

Full description

Bibliographic Details
Main Author: PAULO ROGERIO DA MOTTA JUNIOR
Other Authors: NOEMI DE LA ROCQUE RODRIGUEZ
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
Description
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.