ERAD 2016
O uso de plataformas de alto desempenho é um requisito para a execução de atividades que lidam com grandes volumes de dados. Um conjunto de atividades interligadas, modeladas como um workflow, pode ter sua execução controlada por um Sistema de Gerenciamento de Workflows (SGWfs). O paralelismo de dados pode diminuir o seu tempo total de execução, contudo, os SGWfs não exploram isso de maneira automática. Este trabalho propõe o uso de anotações semânticas para a criação automática de um modelo paralelo para a execução das atividades. Em experimentos com um workflow que lida com 5,8 milhões de objetos de dados, a paralelização obtida das anotações reduziu em 88,37% o tempo de execução do workflow e em 10,35% o custo financeiro.
Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...Elaine Naomi
SBBD 2016
Abstract: Applications that analyze large volumes of data are often modeled as interconnected activities (workflows) and executed on high-performance platforms. Data partitioning and replication can make the activities parallelizable. However, to define a model that results in an efficient use of the platform is not trivial. This work proposes semantic annotations to characterize the data processing in workflows activities, in order to automatically create strategies to parallelize the execution. In experiments with a workflow that handles 5.8 millions of data objects in a NoSQL system, the parallelism obtained from the annotations has reduced the makespan by 88.4% and the financial cost by 10.4%.
Full paper available on: http://sbbd2016.fpc.ufba.br/sbbd2016/sbbd/sbbd_s028.pdf
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
Presented with Flavio Clésio at TDCSP2016 showing a Machine Learning solution for tracking and monitoring a critical billing platform.
Code repository:
https://github.com/eiti-kimura-movile/spark-mllib-sample
Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...Elaine Naomi
SBBD 2016
Abstract: Applications that analyze large volumes of data are often modeled as interconnected activities (workflows) and executed on high-performance platforms. Data partitioning and replication can make the activities parallelizable. However, to define a model that results in an efficient use of the platform is not trivial. This work proposes semantic annotations to characterize the data processing in workflows activities, in order to automatically create strategies to parallelize the execution. In experiments with a workflow that handles 5.8 millions of data objects in a NoSQL system, the parallelism obtained from the annotations has reduced the makespan by 88.4% and the financial cost by 10.4%.
Full paper available on: http://sbbd2016.fpc.ufba.br/sbbd2016/sbbd/sbbd_s028.pdf
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
Presented with Flavio Clésio at TDCSP2016 showing a Machine Learning solution for tracking and monitoring a critical billing platform.
Code repository:
https://github.com/eiti-kimura-movile/spark-mllib-sample
Ambiente de recomendação de índices para bancos de dados MySQLEduardo Weiland
Trabalho de Conclusão do curso de Graduação em Ciência da Computação pela Universidade de Santa Cruz do Sul.
Código-fonte da ferramenta: https://github.com/eduardoweiland/mist
Trabalho escrito: https://github.com/eduardoweiland/mist/blob/master/docs/TCC_II.pdf
Objetivos da apresentação
• Introduzir o R como um software para análise de dados, estatística, armazenamento e criação de gráficos, que é também uma linguagem de programação
• Introduzir a operação básica do software R e apresentar algumas das suas funcionalidades e potencialidades
• Partilhar um conjunto de recursos que facilitem a aprendizagem e exploração do R
• Apresentar alguns exemplos do uso de R
• Propor uma comunidade de uso local, para explorar o R
Aula da disciplina de Uso de dados espaciais para estudos ambientais. Universidade Federal do ABC, São Bernardo do Campo, fevereiro de 2020.
Gravação de aula disponível em: https://youtu.be/R3D2qlJSjVA
Base de dados disponível em: https://app.box.com/s/rlp75p8gvl1v363g1v4m6xbb4rdlz91y
Análise de performance usando as estatísticas do PostgreSQLMatheus de Oliveira
Essa palestra desmitifica as estatísticas do PostgreSQL abordando todo o sistema de coleta de dados estatísticos, as tabelas disponíveis atualmente, conceitos, técnicas e exemplos de consultas úteis para performance e monitoramento do PostgreSQL.
Aula teórica 1 da unidade (disciplina) de Programação Orientada por Objectos dos cursos de LIGE, LEI e LETI no ISCTE-IUL no 2.º semestre do ano lectivo de 2009/2010.
Apresentação usada no CBIE 2014 para discutir um artigo que apresentou como proposta a modelagem analítica de atividades complementares. A modelagem envolveu técnicas de OLAP, BI e Mineração de Dados.
Apresentacao monografia
IMPLANTAÇÃO DE SISTEMA ERP – UM ESTUDO DA PRÁTICA ADOTADA FRENTE AO POSICIONAMENTO TEÓRICO
UEM -Universidade Estadual de Maringá
Adminitração - 2006
Design de aplicações orientadas a objetoElaine Naomi
Modelamos aplicações Ruby como um conjunto de objetos interagindo entre si para resolver um problema.
Quando propomos uma solução, ela geralmente é validada dentro de um escopo específico.
Mas mudanças sempre acontecem: no código, nas regras de negócio, na vida, no universo e em tudo mais.
Com essas mudanças, será que uma solução inicialmente proposta continua sendo válida? Se não for, o código implementado está preparado para evoluir e agregar novos comportamentos de maneira saudável?
Nesta talk, vamos analisar princípios e padrões de design de aplicações orientadas a objeto e como podemos aplicá-los no dia a dia a fim de tornar nosso código mais flexível e com maior qualidade.
21/07/2018
Ambiente de recomendação de índices para bancos de dados MySQLEduardo Weiland
Trabalho de Conclusão do curso de Graduação em Ciência da Computação pela Universidade de Santa Cruz do Sul.
Código-fonte da ferramenta: https://github.com/eduardoweiland/mist
Trabalho escrito: https://github.com/eduardoweiland/mist/blob/master/docs/TCC_II.pdf
Objetivos da apresentação
• Introduzir o R como um software para análise de dados, estatística, armazenamento e criação de gráficos, que é também uma linguagem de programação
• Introduzir a operação básica do software R e apresentar algumas das suas funcionalidades e potencialidades
• Partilhar um conjunto de recursos que facilitem a aprendizagem e exploração do R
• Apresentar alguns exemplos do uso de R
• Propor uma comunidade de uso local, para explorar o R
Aula da disciplina de Uso de dados espaciais para estudos ambientais. Universidade Federal do ABC, São Bernardo do Campo, fevereiro de 2020.
Gravação de aula disponível em: https://youtu.be/R3D2qlJSjVA
Base de dados disponível em: https://app.box.com/s/rlp75p8gvl1v363g1v4m6xbb4rdlz91y
Análise de performance usando as estatísticas do PostgreSQLMatheus de Oliveira
Essa palestra desmitifica as estatísticas do PostgreSQL abordando todo o sistema de coleta de dados estatísticos, as tabelas disponíveis atualmente, conceitos, técnicas e exemplos de consultas úteis para performance e monitoramento do PostgreSQL.
Aula teórica 1 da unidade (disciplina) de Programação Orientada por Objectos dos cursos de LIGE, LEI e LETI no ISCTE-IUL no 2.º semestre do ano lectivo de 2009/2010.
Apresentação usada no CBIE 2014 para discutir um artigo que apresentou como proposta a modelagem analítica de atividades complementares. A modelagem envolveu técnicas de OLAP, BI e Mineração de Dados.
Apresentacao monografia
IMPLANTAÇÃO DE SISTEMA ERP – UM ESTUDO DA PRÁTICA ADOTADA FRENTE AO POSICIONAMENTO TEÓRICO
UEM -Universidade Estadual de Maringá
Adminitração - 2006
Semelhante a Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotações Semânticas e Informações sobre o Ambiente de Execução (20)
Design de aplicações orientadas a objetoElaine Naomi
Modelamos aplicações Ruby como um conjunto de objetos interagindo entre si para resolver um problema.
Quando propomos uma solução, ela geralmente é validada dentro de um escopo específico.
Mas mudanças sempre acontecem: no código, nas regras de negócio, na vida, no universo e em tudo mais.
Com essas mudanças, será que uma solução inicialmente proposta continua sendo válida? Se não for, o código implementado está preparado para evoluir e agregar novos comportamentos de maneira saudável?
Nesta talk, vamos analisar princípios e padrões de design de aplicações orientadas a objeto e como podemos aplicá-los no dia a dia a fim de tornar nosso código mais flexível e com maior qualidade.
21/07/2018
Code Smells: o que eles dizem sobre seu código?Elaine Naomi
Apresentação RubyConfBR 2018
No mundo do Rails, aprendemos a sempre analisar o nosso código sobre o princípio do DRY e seguimos a estratégia de afastar qualquer lógica das nossas views, manter nossos controllers simples e mover toda a lógica de negócio para nossos models.
E quando a nossa aplicação começa a ficar complexa e de difícil manutenção? Models cada vez maiores e com cenários de testes complexos? O que isso diz sobre a nossa aplicação e sobre a qualidade do código escrito? É hora de começar do zero e reescrever tudo? É hora de mudar de paradigma? É hora de migrar para microsserviços? Calma! Vamos, primeiro, identificar os problemas de design da base de código atual.
Nessa talk, vamos conhecer code smells que nos auxiliam na refatoração e na medição da qualidade do nosso código, discutindo o impacto das decisões de design na evolução das aplicações, na entrega de funcionalidades, no processo de desenvolvimento e na comunicação e interação entre as pessoas da equipe.
13/12/2018
Quando iniciamos a jornada como pessoa desenvolvedora, temos infinitas possibilidades para explorar, desde as boas práticas de design de código a questões como criação de interfaces, integrações com serviços, etc. E, por mais que nos preparemos para tudo, acabamos deixando de lado questões mais humanas em prol de questões mais técnicas. No entanto, o fator humano gera grande impacto na qualidade do software gerado, seja a curto ou a longo prazo. E o processo de code review traz, indiretamente, esse assunto em pauta.
Nessa palestra, vamos discutir o code review, analisando como a forma como a comunicação pode afetar não só a qualidade do software mas também a interação entre as pessoas.
Apresentação 29/06/2019
TDC SP 2019 - Decodificando o code reviewElaine Naomi
Quando iniciamos a jornada como pessoa desenvolvedora, temos infinitas possibilidades para explorar, desde as boas práticas de design de código a questões como criação de interfaces, integrações com serviços, etc. E, por mais que nos preparemos para tudo, acabamos deixando de lado questões mais humanas em prol de questões mais técnicas. No entanto, o fator humano gera grande impacto na qualidade do software gerado, seja a curto ou a longo prazo. E o processo de code review traz, indiretamente, esse assunto em pauta. Nessa palestra, vamos discutir o code review, analisando como a forma como a comunicação pode afetar não só a qualidade do software mas também a interação entre as pessoas.
Apresentação do TDC SP - Trilha de Ruby - 20/07/2019
Code review: o que isso diz sobre a cultura dos times de desenvolvimento?Elaine Naomi
Como é o processo de desenvolvimento de software em sua empresa? Existe o foco na qualidade do software desenvolvido ou apenas na funcionalidade entregue? Como é a comunicação e interação dos times de desenvolvimento? Quais são as práticas adotadas para melhorar esses pontos?
Nessa palestra, vamos discutir sobre a cultura da revisão de código, analisando o impacto e importância na entrega de software com qualidade e na construção de times distribuídos.
Data da apresentação: 14-04-2019
Um Método para Paralelização Automática de Workflows Intensivos em DadosElaine Naomi
A análise de dados em grande escala é um dos grandes desafios computacionais atuais e está
presente não somente em áreas da ciência moderna mas também nos setores público e industrial.
Nesses cenários, o processamento dos dados geralmente é modelado como um conjunto de atividades
interligadas por meio de fluxos de dados – os workflows. Devido ao seu alto custo computacional,
diversas estratégias já foram propostas para melhorar a eficiência da execução dos workflows intensivos
em dados, tais como o agrupamento de atividades para a minimizar a transferência de dados e
a paralelização do processamento, de modo que duas ou mais atividades sejam executadas ao mesmo
tempo em diferentes recursos computacionais. O paralelismo nesse caso é definido pela estrutura
descrita em seu modelo de composição de atividades. Em geral, os Sistema de Gerenciamento de
Workflows, responsáveis pela coordenação e execução dessas atividades em um ambiente distribuído,
desconhecem o tipo de processamento a ser realizado e por isso não são capazes de explorar
automaticamente estratégias para execução paralela. As atividades paralelizáveis são definidas pelo
usuário em tempo de projeto e criar uma estrutura que faça uso eficiente de um ambiente distribuído
não é uma tarefa trivial. Este trabalho tem como objetivo prover execuções mais eficientes
de workflows intensivos em dados e propõe para isso um método para a paralelização automática
dessas aplicações, voltado para usuários não-especialistas em computação de alto desempenho. Este
método define nove anotações semânticas para caracterizar a forma como os dados são acessados
e consumidos pelas atividades e, assim, levando em conta os recursos computacionais disponíveis
para a execução, criar automaticamente estratégias que explorem o paralelismo de dados. O método
proposto gera réplicas das atividades anotadas e define também um esquema de indexação e
distribuição dos dados do workflow que possibilita maior acesso paralelo. Avaliou-se sua eficiência
em dois modelos de workflows com dados reais, executados na plataforma de nuvem da Amazon.
Usou-se um SGBD relacional (PostgreSQL) e um NoSQL (MongoDB) para o gerenciamento de até
20,5 milhões de objetos de dados em 21 cenários com diferentes configurações de particionamento e
replicação de dados. Os resultados obtidos mostraram que a paralelização da execução das atividades
promovida pelo método reduziu o tempo de execução do workflow em até 66,6% sem aumentar
o seu custo monetário.
Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotações Semânticas e Informações sobre o Ambiente de Execução
1. Explorando o Paralelismo em Workflows Intensivos em
Dados com o Uso de Anotações Semânticas e
Informações sobre o Ambiente de Execução
Elaine N. Watanabe e Profa Dra Kelly R. Braghetto
Departamento de Ciência da Computação
Instituto de Matemática e Estatística
Universidade de São Paulo, São Paulo, Brasil
{elainew,kellyrb}@ime.usp.br
Escola Regional de Alto Desempenho de São Paulo - 2016
2. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Roteiro
1 Introdução
2 Estratégia Proposta para Paralelização
3 Experimentos e Resultados Obtidos
4 Considerações Finais
ERAD–SP 2016 2 / 16
3. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Workflows intensivos em dados
Objetivo
Contexto
Aplicação distribuída:
Workflows intensivos em dados
Plataforma de alto desempenho:
Nuvem
Gerenciamento de execução distribuída:
Sistema de Gerenciamento de
Workflows (SGWf)
Repositório de dados:
Bancos de dados
A
B C D
E
F
G
ERAD–SP 2016 3 / 16
4. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Workflows intensivos em dados
Objetivo
Objetivo
Criar um modelo para a execução paralela das atividades,
de maneira automática, a partir de:
anotações semânticas sobre o modelo do workflow
informações sobre o ambiente de execução
ERAD–SP 2016 4 / 16
5. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Anotações sobre o Tipo de Processamento
Anotações sobre Atributos dos Objetos de Dados
Reestruturação do workflow
Anotações sobre o Tipo de Processamento
Processamento por Objeto (PO):
indica que uma atividade processa cada objeto de dados de
entrada individualmente
Processamento por Grupo de Objetos (PG):
indica que uma atividade processa os objetos de dados de
entrada em grupos; os grupo são definidos por meio de
atributo(s) agrupador(es)
Estratégias para distribuição dos objetos de dados podem ser
aplicadas conforme as anotações sobre o tipo de processamento
ERAD–SP 2016 5 / 16
6. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Anotações sobre o Tipo de Processamento
Anotações sobre Atributos dos Objetos de Dados
Reestruturação do workflow
Anotações sobre Atributos dos Objetos de Dados
Seleção de Atributos (SA):
lista de atributos de um objeto de dados necessários
para uma atividade
Ordenação de Objetos (OO):
lista de atributos usados para a ordenação dos objetos de dados
As anotações sobre atributos permitem:
Definição de índices para ordenação
Seleção somente dos atributos necessários
ERAD–SP 2016 6 / 16
7. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Anotações sobre o Tipo de Processamento
Anotações sobre Atributos dos Objetos de Dados
Reestruturação do workflow
Reestruturação do workflow
...
... F_mF_1 F_2
E_n
G
A
B C D
E_1 E_2
ERAD–SP 2016 7 / 16
8. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Ambiente de Execução
Cenários avaliados
Resultados
Ambiente de execução
Total de objetos de dados manipulados: 5,8 milhões
Banco de dados Relacional: PostgreSQL
Banco de dados NoSQL: MongoDB
SGWf: Pegasus WMS
Plataforma de computação: Google Cloud
Total de execuções: 5 vezes
Nível de confiança: 95%
ERAD–SP 2016 8 / 16
9. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Ambiente de Execução
Cenários avaliados
Resultados
Arquitetura de um Cluster MongoDB
ERAD–SP 2016 9 / 16
10. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Ambiente de Execução
Cenários avaliados
Resultados
Cenários avaliados
Workflow SGBD Uso das
anotações
No
Partições
No
Réplicas
No Máq.
SGBD
No Nós
Execução
W-01 PostgreSQL Não 1 1 1 1
W-02 PostgreSQL Não 1 1 1 3
W-03∗ PostgreSQL Sim 1 1 1 3
W-04 MongoDB Não 1 1 1 1
W-05 MongoDB Não 1 1 1 3
W-06∗ MongoDB Sim 1 1 1 3
W-07 MongoDB Não 1 3 9 3
W-08∗ MongoDB Sim 1 3 9 3
W-09 MongoDB Não 3 3 15 9
W-10∗ MongoDB Sim 3 3 15 9
W-11∗ MongoDB Sim 3 3 15 9
∗
Cenário envolvendo o uso de anotações semânticas no workflow.
ERAD–SP 2016 10 / 16
13. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Resultados
Estratégia proposta resultou em:
Redução de até 88,4% do makespan em um sistema NoSQL
Redução do makespan de até 74,4% e do custo financeiro de
até 10,35% em cenários com as mesmas configurações e
número de máquinas virtuais.
ERAD–SP 2016 13 / 16
14. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Trabalhos futuros
Definição de novas anotações e estratégias de paralelismo de
dados
Avaliação de outros sistemas NoSQL
Análise do impacto da leitura de réplicas de dados
Experimentos para identificar relação entre número de
partições e nós de execução
ERAD–SP 2016 14 / 16
15. Introdução
Estratégia Proposta para Paralelização
Experimentos e Resultados Obtidos
Considerações Finais
Muito obrigada!
elainew@ime.usp.br
Essa pesquisa foi financiada pela CAPES e pelo NAPSoL-PRP-USP.
Os autores agradecem também ao Google pelos créditos concedidos
para o uso de sua plataforma de nuvem.
ERAD–SP 2016 15 / 16
16. Bibliografia
Mohammad Islam et. al. Oozie: Towards a Scalable Workflow
Management System for Hadoop. Proceedings of the 1st ACM
SIGMOD Workshop on Scalable Workflow Execution Engines and
Technologie, p. 4:1–4:10, 2012.
C.L. Philip Chen and Chun-Yang Zhang. Data-intensive applications,
challenges, techniques and technologies: A survey on Big Data.
Information Sciences, v.275, p.314-347, 2014.
Douglas E. M. de Oliveira et. al. Avaliação da Localidade de Dados
Intermediários na Execução Paralela de Workflows BigData.
Proceedings of 30th Brazilian Symposium on Databases, p.29-40,
2015.
ERAD–SP 2016 16 / 16