<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://ccsl.ime.usp.br/w/index.php?action=history&amp;feed=atom&amp;title=OOPS</id>
	<title>OOPS - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://ccsl.ime.usp.br/w/index.php?action=history&amp;feed=atom&amp;title=OOPS"/>
	<link rel="alternate" type="text/html" href="https://ccsl.ime.usp.br/w/index.php?title=OOPS&amp;action=history"/>
	<updated>2026-06-19T18:40:17Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://ccsl.ime.usp.br/w/index.php?title=OOPS&amp;diff=473&amp;oldid=prev</id>
		<title>Admin: Nova página: Encaminhamento do trabalho:  * Externo   * definição de comunicações ponto-a-ponto não-bloqueantes (recepção com esperas por futuros)   * interação e interface com Scalapack (...</title>
		<link rel="alternate" type="text/html" href="https://ccsl.ime.usp.br/w/index.php?title=OOPS&amp;diff=473&amp;oldid=prev"/>
		<updated>2007-11-08T13:04:37Z</updated>

		<summary type="html">&lt;p&gt;Nova página: Encaminhamento do trabalho:  * Externo   * definição de comunicações ponto-a-ponto não-bloqueantes (recepção com esperas por futuros)   * interação e interface com Scalapack (...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Encaminhamento do trabalho:&lt;br /&gt;
&lt;br /&gt;
* Externo&lt;br /&gt;
  * definição de comunicações ponto-a-ponto não-bloqueantes (recepção com esperas por futuros)&lt;br /&gt;
  * interação e interface com Scalapack (tratamento das matrizes e operações)&lt;br /&gt;
  * estruturas tridimensionais (contêineres, topologias, modos de distribuição)&lt;br /&gt;
  * tratamento de malhas não estruturadas (deveria ser vinculado a um projeto)&lt;br /&gt;
  * introdução do conceito de tarefas e balanceadores de carga (utilização com Integrade)&lt;br /&gt;
  * procura por benchmarks para testes de ferramentas como o OOPS (?)&lt;br /&gt;
&lt;br /&gt;
* Interno&lt;br /&gt;
  * refatoração de Group (provavel divisão da classe em Group e CommunicatorWrapper, algo assim)&lt;br /&gt;
  * refatoração de DistributionBlocked (melhoria na implementação de um dos métodos)&lt;br /&gt;
  * extensão das modificações nas reduções (algumas alterações não foram feitas para todas as operações)&lt;br /&gt;
  * análise das classes e suas relações para utilizar padrões de projeto&lt;br /&gt;
  * definir operações de reduções para derivados de Sendable&lt;br /&gt;
  * manter testes&lt;br /&gt;
  * classes e métodos foram introduzidos sem documentação do Doxygen&lt;br /&gt;
&lt;br /&gt;
* a respeito da aplicação de dinâmica molecular&lt;br /&gt;
  * modificar a implementação atual para comunicação de vetores de coordenadas, e com isso eliminar várias comunicações pequenas.&lt;br /&gt;
  * refatorar o Main::executeOn com extract tudo (antes manter testes)&lt;br /&gt;
  * modificar a implementação de Sendable::pack e Sendable::unpack&lt;br /&gt;
  * verificar a possibilidade e executar novos testes em paralelo para a nova versão&lt;br /&gt;
&lt;br /&gt;
Poderia ainda verificar a documentação já existente de Fortress e X10 para analisar o desenvolvimento de linguagens projetadas para aplicações científicas. Para outros encaminhamentos, deveria ser feito um levantamento de (novas) ferramentas relacionadas (até de antigas, como o KeLP e o Overture)&lt;br /&gt;
&lt;br /&gt;
* Workshop on Programming Models for Grid Computing deadline 10/12/2006&lt;br /&gt;
* SugarLoafPLoP deadline 29/12/2006&lt;br /&gt;
* SBRC 2007 - VI Salão de Ferramentas deadline 12/02/2007&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* até 17/10: discutir com o Fabio o encaminhamento dos trabalhos, já tendo verificado com o Walter a aplicação de caminhos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Proposta/Cronograma do Fabio de Plano de Trabalho:&lt;br /&gt;
&lt;br /&gt;
* até 22/9: apresentar seminário de 2 horas explicando em detalhes a arquitetura e implementação do OOPS e apresentando aplicação de dinâmica e desempenho (incluindo todas as versões (mais OO, menos OO). Não se esquecer de apresentar o mecanismo de envio de objetos.&lt;br /&gt;
&lt;br /&gt;
* também até 22/9: inserir o código no Eclipse CDT.&lt;br /&gt;
&lt;br /&gt;
* até 29/9: escrever documento de umas 6 páginas apresentando trabalhos relacionados, ressaltando diferenças com o OOPS e apontando oportunidades de contrinuições originais do OOPS.&lt;br /&gt;
&lt;br /&gt;
* em 10/10: seminário apresentando &lt;br /&gt;
   * nova implementação do Sendable (idéia do Walter) &lt;br /&gt;
   * novos experimentos&lt;br /&gt;
      * cada ponto ser média de 5 execuções &lt;br /&gt;
      * usar barras verticais para mostrar desvio padrão&lt;br /&gt;
      * separar um gráfico para MPIxOOPS gather e outro para reduce&lt;br /&gt;
      * overhead com a sobrecarga em porcentagem (média e desvio padrão)&lt;br /&gt;
   * código da aplicação refatorado com:&lt;br /&gt;
      * replace name&lt;br /&gt;
      * Extract Method (ler no livro Refactoring da biblioteca)&lt;br /&gt;
&lt;br /&gt;
* até 11/10: definir todas as funcionalidades adicionais que gostaríamos de oferecer aos usuários do OOPS e incluir uma estimativa do trabalho necessário para implementar cada uma destas funcionalidades. Incluir no XPlanner.&lt;br /&gt;
&lt;br /&gt;
* até 13/10: fazer um planejamento completo de todas as tarefas a serem implementadas, suas respectivas prioridades e separação em fases de desenvolvimento (versões do OOPS).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O objetivo inicial do OOPS é o de fornecer uma ferramenta para auxiliar a programação científica paralela. Esta ferramenta utiliza passagem de mensagens como modelo de programação paralela, e encapsula aspectos complexos de bibliotecas de passagem de mensagens, tais como o MPI, que é um padrão de biblioteca de passagem de mensagens bastante utilizado. Uma premissa é que o OOPS não adicione grande sobrecarga em relação a uma execução usando MPI diretamente, visto que a escolha pela programação paralela advém da necessidade de desempenho. Ainda não existe um consenso a respeito de quais técnicas são relevantes e nem sobre qual o nível de abstração que esse tipo de ferramenta deve fornecer. O que se propõe é um framework que se situa em uma posição intermediária no nível de envolvimento do programador da aplicação paralela: este deve se envolver com o paralelismo usando seu discernimento nas escolhas das estruturas mais apropriadas à sua aplicação, mas não se envolve diretamente nos seus detalhes de implementação. O OOPS utiliza processadores virtuais que podem ser organizados em grupos; fornece topologias de comunicações, contêineres distribuídos, modos de distribuição dos contêineres, possiblidade de comunicação de objetos, e intertopologias para comunicações entre grupos distintos de processadores.&lt;br /&gt;
&lt;br /&gt;
Uma área desafiante para a programação paralela é a execução em grades computacionais. Com o uso das grades algumas características de programação paralela devem ser consideradas com maior peso, tais como, localidade dos dados/execução, latência nas comunicações, granulosidade das tarefas paralelas. Para satisfazer essas novas exigências, se faz apropriada a proposta de novos modelos de programação paralela para cobrir esses aspectos. A decisão de projeto do OOPS de manter o paralelismo explícito, possibilita que esses aspectos de localidade e granulosidade sejam tratados diretamente pelo programador, possibilitando que melhores resultados sejam alcançados.&lt;br /&gt;
&lt;br /&gt;
ToDo:&lt;br /&gt;
&lt;br /&gt;
Existem alguns pontos de especificações do OOPS que devem ser (re)definidos. Por exemplo, &lt;br /&gt;
&lt;br /&gt;
   # todos os resultados de reduções poderiam ser mantidas em todos os processadores envolvidos (resolveria algumas questões de implementação), &lt;br /&gt;
   # definição de comunicações ponto-a-ponto não-bloqueantes (nesse ponto poderia ser verificada inclusive a recepção com esperas por futuros), &lt;br /&gt;
   # separação da classe Group em duas (um grupo e um comunicador, este último para encapsular um comunicador MPI para ser utilizados pelas topologias e outras classes de comunicação) e reorganização de dependências (essa classe de comunicador é um wrapper para o MPI? verificar os padrões GoF), &lt;br /&gt;
   # definir a extensão do uso direto do MPI pelas classes do OOPS, &lt;br /&gt;
   # reimplementação de alguns métodos de DistributionBlocked, &lt;br /&gt;
   # verificar a implementação das operações de recuções e distribuição/coleta usando as classes Sendable (talvez seja importante definir operações para atuar nesse caso), &lt;br /&gt;
   # definição a respeito dos métodos de comunicação coletiva (ex. gather, gatherv, opções com all, ...) verificar quais aspectos podem ser definidos apenas com os parâmetros.&lt;br /&gt;
&lt;br /&gt;
A página do OOPS deve ser (continuamente) melhorada: http://appl.ifsc.usp.br/oops . Deve ser disponibilizado o src do OOPS.&lt;br /&gt;
&lt;br /&gt;
Teste de MPI sobre o Integrade e subsequente teste de OOPS sobre o Integrade. (verificar o mpich g2, o que existe para lam) Executar a aplicação de dinâmica molecular sobre o Integrade para averiguar o desempenho obtido.&lt;br /&gt;
&lt;br /&gt;
Verificação das estruturas 3D que deveriam ser introduzidas para tratar do problema de imagens médicas (contêineres, distribuições, topologias) e a adequação de paralelismo para esta aplicação.&lt;br /&gt;
&lt;br /&gt;
Estudo de paradigmas de programação paralela para grade. Proposta de novas estruturas para o OOPS que possam lidar com as necessidades impostas pela computação na grade, modelando o modelo de programação proposto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cronograma&lt;br /&gt;
&lt;br /&gt;
* Até 12/9 - Elaborar plano de trabalho&lt;br /&gt;
&lt;br /&gt;
Este plano de trabalho deve responder as questões levantadas em:&lt;br /&gt;
&lt;br /&gt;
http://www.ime.usp.br/~kon/ResearchStudents/dout-quest.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.slots-wiki.com/index.php/slots_online slots online]&lt;br /&gt;
[http://www.bestweb-online-casinos.com/best-online-casino/online-casino-free-game.html online casino free game]&lt;br /&gt;
[http://www.gambling-online-theory.com/casinos-portal/internet-casinos-sites.html internet casinos sites]&lt;br /&gt;
[http://www.fortune-slots.com/ online slots]&lt;br /&gt;
[http://www.gambling-online-theory.com/online-casino/bet-online-casino.html bet online casino]&lt;br /&gt;
[http://www.casino-games-wiki.com/index.php/play_casino_games play casino games]&lt;br /&gt;
[http://www.casino-theory.com/online-casino-bonus/online-casino-net.html online casino net]&lt;br /&gt;
[http://www.fortune-slots.com/ slots]&lt;br /&gt;
[http://www.magical-casino.com/security.html Casinos security online.]&lt;br /&gt;
[http://www.magical-casino.com/games_variations.html Casino Games and variations.]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>