Alocação Dinâmica e Transparente de Computadores Ociosos em Java
Resumo
O uso de arquiteturas paralelas compostas pela interligação de computadores convencionais é cada vez mais freqüente. O modelo de programação paralela empregado nessas arquiteturas não é intuitivo, uma vez que sua memória está distribuída entre os computadores que a integram. Esse fato faz com que haja a necessidade de interação pela rede entre eles para a resolução de um problema em comum. Buscando simplificar o desenvolvimento de aplicações paralelas que possam ser executadas em sistemas distribuídos dessa natureza, foi desenvolvido o sistema Cadeo. O Cadeo (Controle e alocação dinâmica de estações ociosas) oferece um modelo simples de programação paralela, semelhante ao empregado em aplicações que executam sobre memória compartilhada. Ele disponibiliza dinamicamente computadores de sistemas distribuídos baseado na ociosidade dos mesmos, gerenciando-os de forma totalmente transparente à aplicação. Este artigo apresenta o Cadeo, bem como o desenvolvimento de um protótipo em Java desse sistema e a sua avaliação preliminar.
Referências
D. Caromel, L. Henrio, and B. Serpette. Asynchronous and deterministic objects. In Proceedings of the 31st ACM 168 Symposium on Principies of Programming Languages, pages 123-134. ACM Press, 2004.
D. Caromel, W. Klauser, and J. Vayssiere. Towards seamless computing and metacomputing in java. In G. C. Fox, editor, Concurrency Practice and Experience, volume 10, pages 1043-1061. Wiley & Sons, Ltd., 1998.
W. Cirne, D. Paranhos, L. Costa, E. Santos-Neto, F. Brasileiro, J. Sauvé, F. A. B. da Silva, C. O. Barros, and C. Silveira. Running bag-of-tasks applications on computational grids: The MyGrid approach. In International Conference on Parallel Processing, Kaohsiung, Taiwan, ROC, 2003.
K. E. K. Falkner, P. D. Coddington, and M. J. Oudshoom. Implementing Asynchronous Remote Method Invocation in Java. In Parallel and Realtime Systems (PART"99), pages 22-34, Melbourne, Australia, 1999.
I. Foster and C. Kesselman, editors. The Grid: Blueprint for a Future Computing lnfrastructure. MORGANKAUFMANN, San Francisco, California, 1999.
J. Frey, T. Tannenbaum, M. Livny, I. Foster, and S. Tuecke. Condor-g: A computation management agent for multi-institutional grids. In 10th IEEE International Symposium High Performance Distributed Computing, pages 55- 63, San Francisco, USA, 2001. IEEE Comp. Society Press.
V. Getov, G. von Laszewski, M. Philippsen, and I. Foster. Multiparadigm communications in Java for grid computing. Communications of the ACM, 44(10):118-125, Oct. 2001.
I. H. Kazi, H. H. Chen, B. Stanley, and D. J. Lilja. Techniques for obtaining high performance in java programs. ACM Computing Survey, 32(3):213-240, 2000.
M. J. Litzkow, M. Livny, and M. W. Mutka. Condor: A hunter of idle workstations. In 8th International Conference on Distributed Compwing Systems, pages 104-111. Washington, D.C., USA, June 1988. IEEE Computer Society Press.
M. Lobosco, C. L. de Amorim, and O. Loques. Java for highperformance network-based computing. Concurrency and Computation: Practice and Experience, 14(1): 1-31, 2002.
J. Maassen. R. V. Nieuwpoort, R. Veldema, H. Bal, T. Kielmann, C. Jacobs, and R. Hofman. Efficient Java RMI for parallel programming. ACM Transactions on Programming Languages and Systems, 23(6):747-775, Nov. 2001.
D. Paranhos, W. Cirne, and F. Brasileiro. Trading cycles for information: Using replication to schedule bag-of-tasks applications on computational grids. In Euro-Par 2003: International Conference on Parallel and Distributed Computing, Klagenfurt, Austria, 2003.
R. R. Raje, J. l. Williams, and M. Boyles. Asynchronous Remote Method lnvocation (ARMI) mechanism for Java. Concurrency: Practice and Experience, 9(11): 1207-1211, 1997.
A. E. Schaeffer Filho, L. C. da Silva, A. C. Yamin, I. Augustin, and C. F. R. Geyer. PerDiS: Um modelo para descoberta de recursos na arquitetura ISAM. In VI Workshop de Comunicação Sem Fio e Computação Móvel, pages 98-107, Fortaleza, Brasil, Outubro 2004.
R. V. van Nieuwpoort, T. Kielmann, and H. E. Bal. Satin: Efficient Parallel Divide-and-Conquer in Java. In Euro-Par 2000 Parallel Processing, Lecture Notes in Computer Science, pages 690-699, Munich, Germany, 2000. Springer.