Você está na página 1de 15

Departamento de Informtica PUC-Rio Programa de Ps-Graduao em Informtica Disciplina: Seminrios de Sistemas Distribudos Professores: Markus Endler Renato Cerqueira

a Noemi Rodriguez

Computao em Grade A Perspectiva do Gerenciamento de Dados

Marcelo Nery dos Santos

Julho / 2005

Introduo......................................................................................................................... 3 Protocolos ......................................................................................................................... 3 GridFTP ........................................................................................................................ 4 Chirp ............................................................................................................................. 6 Servios Globus................................................................................................................ 7 Reliable File Transfer (RFT) Service ........................................................................... 7 Global Access to Secondary Storage (GASS) Service................................................. 8 Replica Location Service (RLS) [9] ............................................................................. 8 Aplicaes Condor ........................................................................................................... 9 STORK ......................................................................................................................... 9 DiskRouter.................................................................................................................... 9 Batch-Aware Distributed File System........................................................................ 10 Miscellaneous ............................................................................................................. 10 Google File System ........................................................................................................ 11 Estimativa de Desempenho na Cpia ............................................................................. 12 Concluses...................................................................................................................... 13 Referncias ..................................................................................................................... 14

Introduo
O ambiente de computao em grade gera novas demandas sobre os mecanismos de entrada e sada. As aplicaes precisam acessar os dados armazenados remotamente para que o objetivo final seja atingido. Os sistemas de arquivos distribudos tradicionais, como o NFS e AFS, permitem que a aplicao acesse os dados como se eles fossem locais, porm, alguns problemas encontrados nesses sistemas impedem a sua ampla disseminao e criam a necessidade de um mecanismo alternativo para o gerenciamento e transferncia dos dados na grade. No NFS, atravs da definio de mount points para um servidor de arquivos remoto, a aplicao observa os dados como arquivos regulares no disco. Essa soluo, aparentemente simples, possui problemas na administrao da rede e dos servidores NFS, bem como problemas de segurana e disponibilidade ao tratar de um cenrio multi organizacional. Alm disso, o sistema foi concebido em um cenrio de uso mais interativo, onde um erro no sistema de comunicao poderia ser tratado explicitamente pelo usurio final. Considerando o aspecto de desempenho, a utilizao de dados remotos pode degradar o funcionamento das aplicaes que precisam acessar o arquivo de dados em mltiplas leituras. Nessas situaes, aconselhvel que o arquivo seja replicado em uma rea local e que o resultado seja armazenado posteriormente no servidor. O AFS prov os mecanismos de acesso aos dados de uma forma mais abrangente, entre instituies. Entretanto, o seu uso no est amplamente disseminado e o esforo para disponibiliz-lo o torna uma alternativa pouco vivel, visto que um problema inerente a esse tipo de sistema consiste no controle de acesso aos dados e na manuteno das informaes de acesso, de uma forma centralizada, por parte de vrias instituies que acessam a grade. Algumas alternativas foram desenvolvidas pela comunidade de computao em grade, visando obter um maior desempenho na transferncia e uma maior acessibilidade dos dados. O objetivo desse documento realizar um levantamento geral das tcnicas e sistemas propostos. Os trabalhos relacionados ao Legion [1] e ao OurGrid [2] no esto contemplados nesse documento em funo da maior abrangncia e disponibilidade dos sistemas aqui apresentados, em especial, o Globus [21] e o Condor [22].

Protocolos
Essa seo visa apresentar os diversos protocolos de comunicao utilizados na transferncia dos dados. No ambiente de computao em grade, os protocolos priorizam, normalmente, uma alta taxa de desempenho sustentvel em detrimento a uma baixa latncia de comunicao. As operaes crticas envolvem um grande volume de

dados, onde um pequeno atraso no incio da transferncia no compromete a operao de um modo geral.

GridFTP
O GridFTP define extenses ao protocolo FTP permitindo a transferncia de dados de uma forma segura, confivel e com um alto desempenho. Uma implementao do servio [3] est disponvel no Globus Toolkit 4 e usado pelo Reliable File Transfer (RTF) Service no Globus. O FTP foi escolhido como base para o sistema por vrias razes (1) a existncia de canais de controle separados dos canais de dados, (2) pela ampla difuso do protocolo e (3) pela capacidade de definio de um conjunto de extenses previsto na especificao do protocolo. As principais funcionalidades do GridFTP so: 1. Controle de Transferncia Externo. Um cliente, devidamente autenticado, capaz de mediar a transferncia de dados entre dois servidores de dados. Dessa forma, o cliente realiza operaes remotamente e capaz de iniciar, monitorar e controlar a transferncia de dados. 2. Autenticao, Integridade e Confidencialidade. Utilizando o Generic Secutiry Service e suportando a definio de vrios nveis de confidencialidade e integridade dos dados. A autenticao tambm usada para validar as partes envolvidas na comunicao, ou seja, o cliente e os dois servidores de dados. 3. Transferncia Particionada (striped). Um conjunto de informaes disponveis em um conjunto de mquinas enviado para o destino em vrios canais. Essa tcnica visa fazer um uso otimizado da rede, onde, mesmo que uma mquina no consiga utilizar toda a capacidade da rede, um conjunto de mquinas faz o uso compartilhado resultando em um alto desempenho na operao como um todo. 4. Transferncia Paralela. Utiliza vrios canais TCP paralelos entre a mesma fonte e destino, de forma a obter uma taxa agregada de transferncia maior que a taxa de um nico canal. Essa tcnica pode ser usada conjuntamente tcnica anterior. 5. Transmisso de Dados Parciais. Alm da funo de resume existente no FTP, o GridFTP tambm permite a transferncia de regies arbitrrias do arquivo. Permitindo que apenas um determinado conjunto de informaes seja transferido. Devido aos erros que podem acontecer na transferncia, a continuao do trabalho de forma otimizada importante. 6. Negociao automtica do buffer TCP. O uso de um tamanho de buffer adequado pode aumentar o desempenho da comunicao em redes de longa distncia. O GridFTP tambm permite que o valor seja atribudo manualmente, considerando essa atividade suscetvel a erros.

Alguns resultados experimentais esto disponveis. Trs configuraes de rede foram utilizadas: LAN, a 612Mbps; MAN, a 1Gbps; e a WAN, a 30Gbps, nesse caso, cada mquina possui um link de 1Gbps de conexo com a rede.

Figura 1 - GridFTP

A Figura 1 - GridFTP - apresenta a comparao entre o GridFTP e duas implementaes do protocolo FTP, o ncftp e o wuftp. Nenhuma caracterstica de paralelismo, particionamento ou autenticao foi utilizada. Podemos observar que o desempenho da implementao do GridFTP, no Globus, foi um pouco superior. No teste de paralelismo, definindo vrios canais paralelos entre o cliente e o servidor, podemos observar 4 curvas: 1. Iperf: como o limite de banda calculado por uma ferramenta. 2. Globus Mem: onde a leitura de informaes feita do /dev/zero e escrita realizada para /dev/null. 3. Globus Disk: onde a leitura e escrita de informaes so realizadas no disco. 4. Bonnie: como uma ferramenta para medio de desempenho no sistema de arquivos local.

Figura 2 - GridFTP - Paralelismo

Na Figura 2 - GridFTP - Paralelismo - observamos o desempenho do GridFTP prximo as condies ideais para as trs configuraes de rede, com o desempenho do Globus Mem equivalente a taxa mxima que pode ser atingida pela rede, e o desempenho do Globus Disk limitado pelo desempenho do sistema de arquivos. A degradao de desempenho no caso da WAN em relao ao nmero de streams se deve a realizao de vrias chamadas a funo de seek, para atender o elevado nmero de streams.

Figura 3 - GridFTP - Particionamento

Na Figura 3 - GridFTP - Particionamento - observamos o uso praticamente total da rede WAN pela utilizao de vrios servidores paralelamente. O desempenho da operao usando o disco no atingiu a capacidade da rede e a justificativa a limitao da capacidade dos discos de um dos centros de computao utilizados no teste da rede WAN. O servidor GridFTP se mostrou estvel com a presena de 1800 clientes concorrentes executando em diversas mquinas remotas.

Chirp
O protocolo Chirp [4] utilizado pelas aplicaes do Condor para realizar o acesso aos dados remotos. O NeST, Network Storage, um aplicao de armazenamento de dados para computao em grade (software-only storage appliance) [5]. O NeST possui uma arquitetura de transferncia de dados genrica, suportando vrios protocolos, incluindo o GridFTP e NFS. A Figura 4 - NeST - apresenta uma comparao de desempenho para diversos protocolos de transferncia. O teste consiste na solicitao de um arquivo de 10MB por parte de 4 clientes, usando cada um dos protocolos disponveis, e no ltimo caso (NeST vs JOBS) cada um dos clientes usou um dos quatro protocolos disponveis.

Figura 4 - NeST

Um estudo mais aprofundado sobre o desempenho no GridFTP e do Chirp pode ser obtido em [6], o uso de CPU desses protocolos pode ser observado na Figura 5 - Uso de CPU.

Figura 5 - Uso de CPU

Servios Globus
Os servios de acesso e gerenciamento de dados so utilizados para viabilizar um uso mais simples dos protocolos disponveis. A recuperao de falhas, escolha do protocolo adequado, e o gerenciamento da cpia so realizados pelo servio e o cliente final simplesmente realiza uma solicitao. No Condor, o NeST possui esse papel, no Globus, alguns globus services foram definidos. So eles:

Reliable File Transfer (RFT) Service


Embora o GridFTP oferea suporte para a recuperao de falhas, o controle da operao feito pelo cliente da transferncia e uma falha no cliente pode resultar em uma operao parcialmente concluda entre os servidores. Caso o cliente no possua um mecanismo de persistncia para a continuao da operao, os dados permanecero

inconsistentes e a operao como um todo ter falhado. Alm disso, o canal de controle deve permanecer aberto durante toda a transferncia, o que dificulta clientes mveis, ou com uma conectividade instvel. Nesse sentido, a criao de um servio de transferncia de arquivos necessria, onde clientes realizam a solicitao e o servidor responsvel por manter o canal de controle e o estado das transferncias. O Reliable File Transfer Service [7] atua como um proxy, permitindo que os usurios solicitem as operaes de transferncia atravs do recebimento de descries do trabalho a ser realizado. Diversas operaes podem ser realizadas pelo servio, mapeando as solicitaes em comandos a serem executados pelo RFT usando o GridFTP. O RFT responsvel pelo gerenciamento dessas solicitaes, representando o cliente.

Global Access to Secondary Storage (GASS) Service


O GASS [8] define um espao de nomes global atravs de URLs e permite que as aplicaes acessem os dados usando as interfaces padro de entrada e sada atravs da cpia dos dados para a rea local (staging). O objetivo do GASS no disponibilizar um sistema de arquivos distribudo de propsito geral, e sim funcionalidades para o uso comum em sistemas de computao em grade, como transferncia de executveis e leitura de arquivos de configurao. Os padres de acesso aos dados considerados foram: (1) acesso somente leitura a um arquivo; (2) escrita compartilhada de um arquivo, sem de controle de concorrncia; (3) acesso para concatenao de informaes, como em arquivos de log; e (4) acesso aleatrio de leitura e escrita, tambm sem controle de concorrncia. Dessa forma, as operaes podem ser realizadas sem levar em considerao outras aplicaes que estejam acessando o arquivo. A abertura e o fechamento dos arquivos so feitos atravs de funes especiais, como, globus gass fopen e globus gass fclose. Essas funes ativam o mecanismo de cache do GASS e de acordo com a poltica realiza a cpia do arquivo remoto.

Replica Location Service (RLS) [9]


A utilizao de rplicas na grade reduz a latncia no acesso aos dados, melhorando o desempenho das aplicaes distribudas. O servio de localizao de rplicas mantm um mapeamento entre nomes lgicos e nomes de arquivos reais armazenados na grade. O servio visa substituir o catlogo global de rplicas existente nas verses anteriores do Globus Toolkit. A verso distribuda do servio prov um maior desempenho e escalabilidade. A semntica da palavra rplica deve ser observada atentamente, visto que na grande maioria dos casos, no existe um controle de verses mantendo a integridade dos arquivos, garantindo que todos eles possuem o mesmo contedo.

Aplicaes Condor
O objetivo do projeto Condor permitir a utilizao dos recursos na rede com um enfoque ao nvel institucional. A utilizao de recursos compartilhados entre vrias instituies possvel pela integrao com o Globus, atravs do Condor-G [12]. O casamento de mquinas disponveis com processos a serem executados feito pelo mecanismo de ClassAds, que visa casar os requisitos das publicaes sobre recursos e solicitaes. Diversas caractersticas podem ser especificadas, inclusive indicando preferncias no obrigatrias para a escolha de uma mquina, como a priorizao de uma maior quantidade de memria. Uma das grandes preocupaes do sistema consiste na possibilidade de migrao de processos entre as diversas mquinas, o que depende da realizao de checkpoints. Diversos aspectos nessa linha, inclusive sobre a possibilidade da realizao de checkpoints sem a necessidade de recompilao do cdigo esto apresentados em [13]. A questo de entrada e sada dos processos tambm amplamente estudada e o Parrot [14] normalmente utilizado para que as aplicaes tenham acesso aos dados remotos com pouca ou nenhuma necessidade de recompilao. A seguir, apresentamos alguns sistemas desenvolvidos pelo grupo de trabalho do Condor.

STORK
O Stork [15] foi desenvolvido com o objetivo de tratar as transferncias de dados na grade de uma forma sistemtica, assim como so os processos submetidos pelos usurios, tratando as transferncias como uma operao to importante quanto a submisso de processos. O Stork um agendador das operaes de transferncias de dados na grade, permitindo que essas operaes sejam agendadas, executadas, monitoradas, gerenciadas e retomadas em caso de falha. Os principais desafios enfrentados no sistema se refere a heterogeneidade dos recursos, ao tratamento das falhas nas operaes, aos diferentes requisitos de transferncia (em relao as necessidades das aplicaes), e as limitaes dos recursos a serem utilizados. Alm disso, as falhas no Stork podem ser tratadas pela utilizao de diversos protocolos diferentes, na tentativa de minimizar os erros irrecuperveis ao tentar vrios protocolos em caso de erro em algum deles. O uso compartilhado de CPU e da rede [16] pode resultar em ganhos gerais de desempenho, mantendo uma alta utilizao de ambos os recursos ao longo do tempo, dado que eles podem ser usados independentemente.

DiskRouter
O DiskRouter [17] visa otimizar a transferncia de dados em redes de longa distncia fazendo com que a informao seja tratada de forma especializada em cada ponto na rede. Utilizando buffers em disco e memria nas estaes intermedirias para armazenar os dados, o desempenho pode ser melhorado. Ele tambm pode ser usado como um

ponto de armazenamento de dados prximo aos centros de processamento. Dessa forma, o resultado de algum processo pode ser rapidamente transferido para uma estao prxima, liberando a CPU para o processamento de outro processo, enquanto a transferncia do resultado passa a ser encaminhada para o destino atravs da rede de longa distncia pelo DiskRouter. O sistema capaz de bloquear os escritores caso o espao do buffer seja esgotado, evitando perda de dados. Alm disso, possvel fazer uma avaliao dos dados em transito para definir algum protocolo de compresso, e otimizar os parmetros do TCP em relao a cada um dos links existentes no caminho formado pelos diversos roteadores. O DiskRouter pode ser usado conjuntamente com o Stork, definindo estratgias para o fluxo dos dados.

Batch-Aware Distributed File System


O BAD-FS [18] uma implementao de um sistema de arquivos distribudo que faz com que um gerenciador de dados seja capaz de controlar diversas polticas do sistema, como consistncia, caching e replicao. O gerenciador possui um maior conjunto de informaes e pode tratar o sistema de uma forma mais especfica do que os sistemas de arquivos distribudos tradicionais, atingindo um melhor desempenho, um tratamento de erros mais adequado e uma implementao simplificada. O BAD-FS faz uso de vrios componentes do grupo do Condor, como o NeST, os mecanismos para atribuio de processos do Condor, o Parrot para acesso aos dados pelas aplicaes, e o mecanismo de casamento entre ofertas de mquinas e solicitao de processos, ClassAds.

Miscellaneous
Kosar et al. [19], apresentam um framework com capacidade de monitorao e de ajustes automticos que ampliam a taxa de transferncia em um grande percentual, como observado na Figura 6 - Auto Tuning.

Figura 6 - Auto Tuning

10

Google File System


Seguindo a linha de que os sistemas de arquivos distribudos tradicionais foram desenvolvidos com um propsito diferente dos necessrios em sistemas de computao em grade, o Google possui um sistema de arquivos especfico para o tratamento de grandes volumes de informao [20]. O sistema se baseia no uso de dispositivos de armazenamento comuns, e deve ser capaz de manipular eficientemente grandes arquivos, da ordem de centenas de megabytes ou dezenas de gigabytes. O padro de acesso aos dados deve ser otimizado para um alto desempenho, com pouca preocupao com o aspecto de latncia e o uso de cache de dados no cliente no estritamente necessrio pelas caractersticas observadas no acesso aos dados pelo sistema. Alm das operaes comuns dos sistemas de arquivos, como criao, deleo, abertura, fechamento, leitura e escrita, duas funes foram definidas por terem um grande uso no ambiente de aplicao do sistema: snapshot e append. Com o objetivo de obter uma cpia de uma rvore de arquivos e de concatenar informaes atomicamente em um arquivo com baixo custo. A arquitetura do sistema composta por um mestre nico e diversos servidores de dados. Os clientes se comunicam com o mestre para obteno de metadados sobre as informaes, como a localizao do dado nos diversos servidores e o identificador interno. O mestre responsvel por manter o espao de nomes global, e verificar o funcionamento dos diversos servidores atravs de mensagens de heart beat. A Figura 7 - Arquitetura do Google File System apresenta a arquitetura.

Figura 7 - Arquitetura do Google File System

A utilizao de um nico mestre simplifica bastante a implementao e toda a informao que o mestre oferece mantida em memria, garantindo uma resposta rpida sem sobrecarga do processo. O sistema capaz de gerenciar milhares de

11

mquinas, com seus dispositivos de armazenamento, de forma confivel e com um bom desempenho.

Estimativa de Desempenho na Cpia


Considerando o escalonamento de processos em um ambiente de computao em grade, a informao sobre o tempo necessrio para realizar a transferncia dos dados, entre a origem e o candidato a processar o dado, pode ser um critrio importante. Pode ser interessante que um processador mais lento seja utilizado, caso o custo associado transferncia do dado para um servidor com maior capacidade de processamento seja maior. Considerando a existncia de rplicas da informao em diversos pontos de armazenamento, a escolha da fonte dos dados tambm pode ser obtida caso alguma estimativa esteja presente. Vazhkudai et al [10], argumentam que a modelagem analtica de sistemas, apesar de amplamente utilizada para sistemas compostos por CPU, discos e aspectos de rede a nvel de roteador, no se aplicam ao tratar sobre a transferncia de arquivos em uma rede real. Isso se deve, especialmente, pela natureza imprevisvel do comportamento do sistema e pela falta de um conjunto completo dos dados a serem modelados. Em contrapartida, eles propem uma tcnica que utiliza dados histricos na tentativa de prever o comportamento futuro, considerando todo o esforo da transferncia de dados fim a fim, e no tratando os componentes individualmente. Diversas funes matemticas, como mdia ponderada, mediana, ou modelos de regresso podem ser usados como preditores. Os parmetros utilizados podem consistir de tamanho do arquivo, origem e destino da transferncia, nmero de fluxos (streams) usados, entre outros. Alm dos dados histricos, o uso de pacotes de teste pode ser utilizado para avaliar as condies da rede no momento que antecede a transmisso. No caso de pacotes de teste, recomendvel a utilizao de pacotes de tamanho varivel e incremental. Evitando que o clculo da estimativa seja retardado por um eventual link de baixa qualidade, ou prejudicado, pelo uso de pacotes muito pequenos. A Figura 8 - Erro da Estimativa - apresenta o erro da estimativa considerando a tcnica baseada no histrico (PastMavg) e as demais tcnicas baseadas em regresso.

12

Figura 8 - Erro da Estimativa

De acordo com os experimentos realizados, o uso de tcnicas de regresso aumentou a preciso da estimativa em 5 a 10% comparada a tcnica que considera apenas o histrico. Pelo baixo ganho obtido, acreditamos que a simplicidade da soluo baseada apenas no histrico deve ser considerada. E que o uso de pacotes de teste, no considerados nos experimentos citados nos artigos, pode gerar resultados interessantes.

Concluses
A definio de sistemas especializados est presente nas mais diversas reas da computao. As decises de projeto que fizeram com que antigos sistemas obtivessem sucesso em um determinado contexto podem no ser vlidas no contexto atual. Novas avaliaes do uso do sistema devem ser realizadas e adaptaes, ou completas reestruturaes, so necessrias, objetivando atender a nova demanda computacional. Nesse sentido, os mecanismos de gerenciamento de dados devem ser estudados e definidos levando em considerao as caractersticas das mais diversas solues disponveis. Novos sistemas podem ser criados com o objetivo de otimizar o funcionamento para um caso especfico, como no ambiente de computao em grade, onde o desempenho e a disponibilidade tem um papel fundamental. O objetivo final beneficiar o cliente final da aplicao, disponibilizando novas funcionalidades com um alto desempenho. Na construo de um sistema de arquivos distribudo, diversos aspectos devem ser tratados, como o conjunto de operaes oferecidas, bem como o desempenho nas funcionalidades mais crticas, viabilizando um amplo uso do sistema. As diversas tcnicas e sistemas apresentados nesse trabalho, como os protocolos de comunicao, os sistemas existentes e os mecanismos para estimativa de tempo de transferncia de dados, so essenciais para a modelagem e definio de um sistema de arquivos especializado, visando a manipulao de dados em um novo sistema de computao em grade.

13

Referncias
[1] Andrew S. Grimsaw, Wm. A. Wulf. Legion--A View From 50,000 Feet. Proceedings of the Fifth IEEE International Symposium on High Performance Distributed Computing, IEEE Computer Society Press. Los Alamitos, California, August 1996. [2] Nazareno Andrade, Walfredo Cirne, Francisco Brasileiro, Paulo Roisenberg. OurGrid: An Approach to Easily Assemble Grids with Equitable Resource Sharing. Proceedings of the 9th Workshop on Job Scheduling Strategies for Parallel Processing. Seattle, Washington, June 2003. [3] Bill Allcock, John Bresnahan, Raj Kettimuthu, Mike Link, Catalin Dumitrescu, Ioan Raicu, Ian Foster. The Globus Striped GridFTP Framework and Server. Submitted to the 2005 High Performance Distributed Computing Conference (HPDC 14). To appear, July 2005. [4] "Chirp Protocol" http://www.cs.wisc.edu/condor/chirp/. Consultado em Julho de 2005. [5] John Bent, Venkateshwaran Venkataramani, Nick LeRoy, Alain Roy, Joseph Stanley, Andrea C. Arpaci Dusseau, Remzi H. Arpaci-Dusseau, Miron Livny. Flexibility, Manageability, and Performance in a Grid Storage Appliance. Proceedings of the Eleventh IEEE Symposium on High Performance Distributed Computing. Edinburgh, Scotland, July 2002. [6] George Kola, Tevfik Kosar and Miron Livny, Profiling Grid Data Transfer Protocols and Servers. In Euro-Par 2004. Pisa, Italy, September 2004. [7] W.E. Allcock, I. Foster, R. Madduri. Reliable Data Transport: A Critical Service for the Grid. Building Service Based Grids Workshop, Global Grid Forum 11, June 2004. [8] J. Bester, I. Foster, C. Kesselman, J. Tedesco, S. Tuecke. GASS: A Data Movement and Access Service for Wide Area Computing Systems. Sixth Workshop on I/O in Parallel and Distributed Systems. Atlanta, Georgia, May 1999. [9] Manual do Usurio do Globus Toolkit 4. Replica Location Service. http://www.globus.org/toolkit/docs/4.0/data/rls/user-index.html . Consultado em Julho de 2005. [10] J. M. Schopf, S. Vazhkudai. Predicting Sporadic Grid Data Transfers. 11th IEEE International Symposium on High-Performance Distributed Computing (HPDC-11), IEEE Press. Edinburg, Scotland, July 2002. [11] S. Vazhkudai, J. M. Schopf, I. Foster. Predicting the Performance of Wide Area Data Transfers. Proceedings of the 16th International Parallel and Distributed Processing Symposium (IPDPS 2002), Fort Lauderdale, Florida, April 2002.

14

[12] James Frey, Todd Tannenbaum, Ian Foster, Miron Livny, and Steven Tuecke, Condor-G: A Computation Management Agent for Multi-Institutional Grids, Journal of Cluster Computing volume 5, pages 237-246, 2002. [13] Victor C. Zandy, Barton P. Miller, and Miron Livny, Process Hijacking, The Eighth IEEE International Symposium on High Performance Distributed Computing (HPDC8). Redondo Beach, California, August 1999, pp. 177-184. [14] Douglas Thain and Miron Livny, Parrot: Transparent User-Level Middleware for Data-Intensive Computing. Workshop on Adaptive Grid Middleware. New Orleans, Louisiana, September 2003. [15] Tevfik Kosar and Miron Livny, Stork: Making Data Placement a First Class Citizen in the Grid. In Proceedings of 24th IEEE Int. Conference on Distributed Computing Systems (ICDCS2004). Tokyo, Japan, March 2004. [16] Jim Basney and Miron Livny, Improving Goodput by Co-scheduling CPU and Network Capacity. International Journal of High Performance Computing Applications, Volume 13(3), Fall 1999. [17] G. Kola and M. Livny. Diskrouter: A flexible infrastructure for high performance large scale data transfers. Technical Report CS-TR-2003-1484, University of Wisconsin, 2003. [18] John Bent, Douglas Thain, Andrea Arpaci-Dusseau, Remzi Arpaci-Dusseau, and Miron Livny, Explicit Control in a Batch Aware Distributed File System. Proceedings of the First USENIX/ACM Conference on Networked Systems Design and Implementation. San Francisco, CA, March 2004. [19] Tevfik Kosar, George Kola and Miron Livny, A Framework for Selfoptimising, Fault-tolerant, High Performance Bulk Data Transfers in a Heterogeneous Grid Environment. Proceedings of 2nd Int. Symposium on Parallel and Distributed Computing (ISPDC2003). Ljubljana, Slovenia, October 2003. [20] Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. The Google File System. 19th ACM Symposium on Operating Systems Principles, Lake George, NY, October, 2003. [21] I. Foster, C. Kesselman, S. Tuecke. The Anatomy of the Grid: Enabling Scalable Virtual Organizations. International J. Supercomputer Applications, 15(3), 2001. [22] Michael Litzkow, Miron Livny, and Matt Mutka. Condor - A Hunter of Idle Workstations. Proceedings of the 8th International Conference of Distributed Computing Systems, pages 104-111. June, 1988.

15