Efficient Java Communication
Protocols on High-speed Cluster
Interconnects
Alexandre Almeida
Felipe Severino
Tema
• Criação de um protocolo de comunicação
Java otimizado para comunicação
eficiente em clusters de alto desempenho
(e.g. GbE e SCI);
• Java Fast Sockets: compatível com Java
Sockets.
Motivação
• Clusters de alto desempenho precisam de uma
interconexão eficiente;
• Crescente interesse na utilização de Java para
high-performance computing;
• O desempenho de uma aplicação paralela é
diretamente influenciado pela sobrecarga da
comunicação;
• Java não suporta protocolos de comunicação de
alto desempenho (e.g. SCI e Myrinet).
Estado-da-arte
• Sockets-MX/Sockets-GM:
– Implementação de sockets de baixa latência
para Myrinet;
– Não usa pilha TCP/IP: comunicação mais
eficiente que emulação de TCP/IP sobre
Myrinet;
– Dois modelos de comunicação:
• Zero-copy: high badwidth;
• One-copy: low latency.
Estado-da-arte
• SCISOCKETS
– Implementação socket sobre interface SISCI
e GENIF;
– SISCI:
• Interface user level para SCI;
• Implementa mecanismos de compartilhamento de
memória e transferência de dados entre eles;
– GENIF:
• Interface kernel level para SCI.
Objetivos
• Criação de uma interface de alto nível
para comunicação em clusters de alto
desempenho:
– SCI;
– GbE;
JFS
• Java Fast Sockets (JFS):
– Java-related:
•
•
•
•
Portabilidade X desempenho;
Facilidades de Java NIO;
Camada de comunicação leve;
Transparência.
– Native-related:
•
•
•
•
Utilização de métodos nativos para ganho de desempenho;
Interação entre código Java e código nativo;
Escolha entre User Level ou Kernel Level.
Etc
JFS
• Se houver protocolo nativo ele irá assumir
a conexão;
• Caso contrário, será usada
implementação Java socket;
JFS
• Utilização é feita substituindo a
implementação padrão por JFS;
– Transparente ao usuário:
JFS
• Facilidades de Java NIO:
– Solução Java é baseada em Java NIO
SocketChannels e direct byte buffers;
– Solução nativa é baseada em uma extensão
de I/O Stream do pacote java.io, que irá
tratar os direct byte buffers através de
métodos nativos;
Arquitetura do JFS
• Integração do protocolo nativo no JFS
Resultados
• Ambiente de teste:
– Dois processadores Xeon (dual-core)
conectados através de SCI e GbE;
– S.O.: Linux Centos 4.2 com kernel 2.6.9 e
compiladores gcc 3.4.4 e Sun JDK 1.5.0_05;
– Benchmark utilizando NetPIPE (Network
Protocol Independent Performance
Evaluator);
Avaliação
• Abordagem Java para comunicação de alto
desempenho;
– Relativamente relevante;
• A escrita do artigo é bastante confusa;
– A qualidade de escrita do texto deixa a desejar;
– Problemas com citações;
• Os resultados obtidos são questionáveis e
obtidos apenas sobre SCI e GbE, sendo este
último muito similar ao Java Sockets
convencional.
Notas
• a) motivação e estado-da-arte: 3
• b) problema a resolver e modelo: 4
• c) Protótipo, resultados e comparações
com trabalhos relacionados: 2
• d) Redação e formatação: 2
Download

Efficient Java Communication Protocols on High