UNIVERSIDADE FEDERAL DE PERNAMBUCO - UFPE · inovação terapêutica tem tomado proporções...
Transcript of UNIVERSIDADE FEDERAL DE PERNAMBUCO - UFPE · inovação terapêutica tem tomado proporções...
UNIVERSIDADE FEDERAL DE PERNAMBUCO
Centro de Ciências Biológicas
Programa de Pós-Graduação em Inovação Terapêutica
Luiz Felipe Gomes Rebello Ferreira
Desenvolvimento e implementação de software para aplicação
de grids computacionais em modelagem para inovação
terapêutica
Recife
2013
Luiz Felipe Gomes Rebello Ferreira
Desenvolvimento e implementação de software para
aplicação de grids computacionais em modelagem para
inovação terapêutica
Dissertação de Mestrado apresentada ao
Programa de Pós-Graduação em Inovação
Terapêutica da Universidade Federal de
Pernambuco, para a obtenção do Título de
Mestre em Inovação Terapêutica
Orientador: Prof. Dr. Marcelo Zaldini Hernandes
Recife
2013
Catalogação na fonte Elaine Barroso
CRB 1728
Ferreira, Luiz Felipe Gomes Rebello Desenvolvimento e implementação de software para aplicação de grids computacionais em modelagem para inovação terapêutica/ Luiz Felipe Gomes Rebello Ferreira– Recife: O Autor, 2013. 122 folhas : il., fig., tab.
Orientador: Marcelo Zaldini Hernandes Dissertação (mestrado) – Universidade Federal de
Pernambuco, Centro de Ciências Biológicas, Inovação Terapêutica, 2013. Inclui bibliografia e apêndices
1. Bioinformática 2. Grid computacional 3. Moléculas I.
Hernandes, Marcelo Zaldini (orientador) II. Título 570.28 CDD (22.ed.) UFPE/CCB- 2013- 064
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE CIÊNCIAS BIOLÓGICAS
PROGRAMA DE PÓS-GRADUAÇÃO EM INOVAÇÃO TERAPÊUTICA
Recife, 21 de fevereiro de 2013.
Dissertação de Mestrado defendida e APROVADA, por decisão unânime, em 21 de
fevereiro de 2013, cuja Banca Examinadora foi constituída pelos seguintes professores:
PRESIDENTE E PRIMEIRO EXAMINADOR INTERNO: Prof. Dr. Marcelo
Zaldini Hernandes
(Departamento de Ciências Farmacêuticas da Universidade Federal de Pernambuco)
Assinatura:_______________________________________
SEGUNDO EXAMINADOR INTERNO: Prof. Dr. César Augusto Souza de
Andrade
(Departamento de Bioquímica da Universidade Federal de Pernambuco)
Assinatura:_______________________________________
PRIMEIRO EXAMINADOR EXTERNO: Prof Dr Carlos Henrique Madeiros
Castelletti
(Instituto Agronômico de Pernambuco)
Assinatura:_______________________________________
AGRADECIMENTOS
Ao orientador Marcelo Zaldini pelo apoio, paciência e inúmeras
sugestões dadas para esta dissertação.
Ao Klaus Cavalcante por ter me iniciado nesta área, pelo apoio nos
momentos mais difíceis e por toda ajuda e sugestões dadas ao longo
destes últimos anos.
A minha família pelo apoio incondicional.
Aos amigos do Laboratório de Química Medicinal (LQTM).
Ao programa de pós-graduação em inovação terapêutica (PPGIT).
A Fundação de Amparo à Ciência e Tecnologia do Estado de
Pernambuco (FACEPE) pelo auxilio financeiro a este trabalho através da
concessão da bolsa de estudos.
RESUMO
A utilização de computadores no desenvolvimento de produtos ligados à
inovação terapêutica tem tomado proporções significativas, particularmente na
área de planejamento molecular baseado em métodos computacionais. Estima-
se que o uso destas metodologias pode reduzir os custos e o tempo de
desenvolvimento de um novo fármaco em até 50%. Isto ocorre porque muitas
vezes o número de moléculas que precisam ser sintetizadas e testadas
experimentalmente passa a ser drasticamente reduzido por conta da alta
preditividade e confiabilidade dos métodos computacionais (in silico). O docking
molecular determina se pode haver interação energética favorável entre duas
moléculas (ligante e alvo biológico), no intuito de elucidar as razões
moleculares responsáveis pela potência farmacológica destes fármacos em
potencial. Ocorre que estes métodos podem apresentar, por vezes, uma alta
demanda computacional quando o número de ligantes e alvos a serem
testados é alto e quando se busca alta precisão nos resultados numéricos
obtidos. Este trabalho apresenta a plataforma GriDoMol para execução de
cálculos de docking molecular no ambiente distribuído através de um grid
computacional. O programa GriDoMol pode ser usado tanto com o programa
AutoDock quanto com o programa AutoDock Vina, para realizar os cálculos de
docking. Através da interface intuitiva do GriDoMol é possível acompanhar o
andamento com dados do conjunto de cálculos de docking e criar o arquivo Job
Description File (JDF) contendo a lista de cálculos de docking que será
realizado em paralelo no ambiente de grid computacional. Tanto no programa
AutoDock quanto no AutoDock Vina, o tempo necessário para a realização de
500 cálculos de docking molecular foi reduzido em até 97% do tempo
necessário quando comparado a não utilizar nenhuma estratégia de
paralelização, ou de computação distribuída.
Palavras-chave: GriDoMol. grid computacional. docking molecular.
computação distribuída. inovação terapêutica.
ABSTRACT
The use of computers in developing products related to therapeutic
innovation has taken significant proportions, particularly in the area of
computer-based molecular design. It is estimated that the use of these methods
can reduce the costs and time spent at development stage of a new drug by
50%. This often happens because the number of molecules that need to be
experimentally synthesized and tested becomes drastically reduced due to the
high predictability and reliability of the computational methods (in silico). The
molecular docking procedure determines if there is favorable interaction energy
between two molecules (ligand and biological target) in order to elucidate the
molecular reasons responsible for the pharmacological potency of these
potential drugs. It happens that these methods may present, sometimes, a high
computational demand when the number of ligands and targets to be tested is
high and when seeking for a high precision in the numerical results. This work
presents the GriDoMol platform for performing molecular docking calculations in
a distributed system through a computational grid environment. GriDoMol can
be used either with the program AutoDock as the program AutoDock Vina, to
perform molecular docking calculations. Through the GriDoMol intuitive
interface, one can track the progress of the docking calculations and create the
Job Description File (JDF) containing the list of docking calculations to be
performed in parallel at the grid computing environment. Both in AutoDock and
in AutoDock Vina, the time required to perform 500 tasks of molecular docking
was reduced by up to 97% of the time required when compared to not using any
parallelism strategy, or distributed computing.
Keywords: GriDoMol. computational grid. molecular docking. distributed
computing.
LISTA DE ILUSTRAÇÕES
Figura 2.1 – Exemplo de um complexo estrutural (PDB: 1ULB) formado por um receptor (cor
laranja) e seu ligante co-cristalizado (modelo de esferas e ligações, em cores azul e branca). O
melhor resultado de re-docking molecular pode ser observado detalhadamente (modelo de
ligações, em cor vermelha), bem como sua alta superposição com a estrutura do ligante co-
cristalizado. (a) A visão panoramica da superfice do receptor, incluindo o ligante co-cristalizado
e a solução de docking. (b) Uma visão detalhada do sitio ativo do receptor.............................. 06
Figura 2.2 – Heterogeneidade e distribuição geográfica de um grid computacional.................. 17
Figura 5.1 – Tela inicial do GriDoMol, sendo executado no sistema operacional Windows....... 47
Figura 5.2 – Tela do GriDoMol para criação do job no Windows................................................ 48
Figura 5.3 - Esquema da arquitetura de comunicação entre os programas de cada máquina
utilizados neste trabalho.............................................................................................................. 52
Figura 5.4 - Gráfico de desempenho do AutoDock em função do tempo. As curvas com a
legenda no formato Ex (onde x se refere ao número de núcleos de processamento utilizados)
se refere aos valores observados enquanto as curvas no formato Exp representam os valores
previstos...................................................................................................................................... 56
Figura 5.5 - Gráfico do FdI para o programa AutoDock. As legenda no formato Mx (onde x se
refere ao número de máquinas utilizadas) mostra os valores observados em relação ao
previsto........................................................................................................................................ 58
Figura 5.6 – Gráfico do FdM para o programa AutoDock. As legenda no formato Ex (onde x se
refere ao número de instâncias de execução utilizadas) mostra os valores observados em
relação ao previsto...................................................................................................................... 59
Figura 5.7 – Gráfico de dispersão dos cálculos individuais de docking com o programa
AutoDock ao utilizar: (a) uma máquina e uma instância de execução; (b) uma máquina e oito
instâncias de execução; (c) seis máquinas e uma instância de execução................................. 68
Figura 5.8 – Gráfico do desempenho do AutoDock Vina em função do tempo. As curvas com a
legenda no formato Nx (onde x se refere ao número de núcleos de processamento utilizados)
se refere aos valores observados enquanto as curvas no formato Nxp representam os valores
previstos...................................................................................................................................... 71
Figura 5.9 – Gráfico dos valores de FdC no programa AutoDock Vina. A legenda no formato Mx
(onde x se refere ao número de máquinas utilizadas) se refere aos valores observados.......... 72
Figura 5.10 – Gráfico dos valores de FdM no programa AutoDock Vina. A legenda no formato
Mx (onde x se refere ao número de máquinas utilizadas) se refere aos valores observados.... 73
Figura 5.11 – Gráfico de dispersão dos cálculos individuais de docking com o programa
AutoDock Vina ao utilizar: (a) uma máquina e um núcleo de processamento; (b) uma máquina
e oito núcleos de processamento; (c) oito máquinas e um núcleo de processamento cada...... 81
Figura 5.12 – Fator de aceleração do desempenho, a nivel de núcleos de processamento dos
cálculos individuais de docking no AutoDock Vina, ao utilizar os oito núcleos de processamento
em relação a utilizar apenas um núcleo de processamento. A linha vermelha representa o valor
médio de aceleração do desempenho........................................................................................ 83
Figura 5.13 – Desempenho ao reordenar a sequência dos cálculos individuais de docking. O
eixo das ordenadas representa o tempo em segundos, enquanto o eixo das abscissas
representa as 5 repetições de cada teste................................................................................... 86
Figura 5.14 – Gráficos do desempenho dos 10 ordenamentos aleatórios. O M1C8 se refere a
uma máquina utilizando oito núcleos de processamento enquanto o M8C8 a oito máquinas
utilizando oito núcleos de processamento...................................................................................88
LISTA DE TABELAS
Tabela 1 – Comparativo entre alguns pontos chaves entre cluster e grid computacional.......... 13
Tabela 2 – Lista do conjunto de complexos ligante-receptor selecionados para este estudo.... 41
Tabela 3 – Características do código fonte implementado no programa GriDoMol obtido a partir
do programa SLOCCount............................................................................................................ 46
Tabela 4 – Total de cálculos realizados...................................................................................... 53
Tabela 5 – Desempenho computacional comparativo do GriDoMol durante a realização dos
cálculos com o AutoDock............................................................................................................ 55
Tabela 6 – Tempo total estimado de comunicação entre os componentes do ambiente de grid
computacional............................................................................................................................. 61
Tabela 7 – Tempos de execução individual de cada cálculo de docking, no AutoDock, ao utilizar
uma máquina e uma instância do programa AutoDock por máquina. As colunas E1 a E10
representa o tempo de execução individual de cada cópia de cada complexo dentro do mesmo
job................................................................................................................................................ 65
Tabela 8 – Tempos de execução individual de cada cálculo de docking, no AutoDock, ao utilizar
uma máquina e oito instâncias simultâneas do programa AutoDock por máquina. As colunas E1
a E10 representa o tempo de execução individual de cada cópia de cada complexo dentro do
mesmo job................................................................................................................................... 66
Tabela 9 – Tempos de execução individual de cada cálculo de docking, no AutoDock, ao utilizar
seis máquinas e apenas uma instância do programa AutoDock por máquina. As colunas E1 a
E10 representa o tempo de execução individual de cada cópia de cada complexo dentro do
mesmo job................................................................................................................................... 67
Tabela 10 – Desempenho computacional comparativo do GriDoMol durante a realização dos
cálculos com o AutoDock Vina.................................................................................................... 70
Tabela 11 – Cálculos refeitos para elucidar os valores elevados de FdM encontrados em alguns
dos cálculos................................................................................................................................. 74
Tabela 12 – Tempos de execução individual de cada cálculo de docking, no AutoDock Vina, ao
utilizar uma máquina e um núcleo de processamento cada. As colunas E1 a E10 representa o
tempo de execução individual de cada cópia de cada complexo dentro do mesmo job............. 78
Tabela 13 – Tempos de execução individual de cada cálculo de docking, no AutoDock Vina, ao
utilizar uma máquina e oito núcleos de processamento cada. As colunas E1 a E10 representa o
tempo de execução individual de cada cópia de cada complexo dentro do mesmo job............. 79
Tabela 14 – Tempos de execução individual de cada cálculo de docking, no AutoDock Vina, ao
utilizar oito máquina e um núcleo de processamento cada. As colunas E1 a E10 representa o
tempo de execução individual de cada cópia de cada complexo dentro do mesmo job............. 80
Tabela 15 – Tempos de execução dos cálculos utilizando diferentes sequências de
ordenamento das tarefas individuais (docking)........................................................................... 85
Tabela 16 – Tempos de execução dos jobs aleatórios, em segundos....................................... 87
LISTA DE ABREVIAÇÕES E SIGLAS
BAT Batch (Arquivo de Lote)
BoT Bag of tasks (Conjunto de tarefas)
CADD Computer Aided Drug Design (Desenvolvimento de fármacos com o auxílio de
métodos computacionais)
CCB Centro de Ciências Biológicas
CNPq Conselho Nacional de Desenvolvimento Científico e Tecnológico
COCOMO Construtive Cost Model (Modelo de estimativa de tempo de desenvolvimento)
CPU Central Processing Unit (Unidade central de processamento)
DLG Docking Log File (Arquivo de registro de docking)
DPF Docking Parameters File (Arquivo de parâmetros de docking)
FACEPE Fundação de Amparo à Ciência e Tecnologia do Estado de Pernambuco
FdC Fator de divisão por Cores (núcleos de processamento)
FdI Fator de divisão por Instâncias de execução
FdM Fator de divisão por Máquinas
GPF Grid Parameters File (Arquivo de parâmetros do AutoGrid)
GPU Graphics Processing Unit (Unidade de processamento gráfico)
GSF GriDoMol Setup File (Arquivo de configurações de docking do GriDoMol)
HIV Human immunodeficiency vírus (Vírus da imunodeficiência humana)
IDE Integrated Development Environment (ambiente de desenvolvimento integrado)
JDF Job Description File (Arquivo de descrição das tarefas)
LQTM Laboratório de Química Teórica Medicinal
MOL2 Arquivo de estrutura molecular desenvolvido pela Tripos Inc.
NSF National Science Foundation (Fundação Nacional de Ciência)
PDB Protein Data Bank (Banco de dados de proteínas)
PDBQT Arquivo PDB acrescido de cargas parciais (Q) e número de torsões (T)
PPGIT Programa de Pós-Graduação em Inovação Terapêutica
SDF Structure Data File (Arquivo de dados da estrutura)
SDF Site Definition File (Arquivo de definição do grid computacional local)
SDK Software Development Kit (Kit de desenvolvimento de software)
SH Shell Script (linguagem de programação)
UFPE Universidade Federal da Pernambuco
SUMÁRIO
1 INTRODUÇÃO ............................................................................................................................1
2 REVISÃO DE LITERATURA...........................................................................................................5
2.1 Modelagem Molecular ...........................................................................................................5
2.1.1 Docking Molecular...............................................................................................................5
2.1.1.1 AutoDock ..........................................................................................................................9
2.1.1.2 AutoDock Vina ................................................................................................................12
2.2 Computação Distribuída .......................................................................................................13
2.2.1 Grid Computacional ...........................................................................................................15
2.2.2 OurGrid .............................................................................................................................18
2.2.3 Aplicações de grids computacionais ..................................................................................22
2.2.3.1 BOINC .............................................................................................................................22
2.2.3.2 XSede..............................................................................................................................24
2.3 Grids computacionais aplicados em áreas diversas ..............................................................25
2.4 Docking molecular utilizando arquiteturas distribuídas .......................................................26
3 OBJETIVOS ...............................................................................................................................32
3.1 Geral .....................................................................................................................................32
3.2 Específicos ............................................................................................................................32
4 METODOLOGIA .......................................................................................................................33
4.1 GriDoMol ..............................................................................................................................33
4.2 Testes de desempenho computacional (“performance”) .....................................................36
4.2.1 Programa AutoDock ..........................................................................................................42
4.2.2 Programa AutoDock Vina ..................................................................................................43
5 RESULTADOS E DISCUSSÕES ....................................................................................................45
5.1 O programa GriDoMol ..........................................................................................................45
5.2 Resultados dos cálculos de docking......................................................................................53
5.2.1 Resultados do AutoDock ...................................................................................................55
5.2.1.1 Reprodutibilidade do tempo de execução do AutoDock ................................................63
5.2.2 Resultados do AutoDock Vina ...........................................................................................70
5.2.2.1 Reprodutibilidade do tempo de execução do AutoDock Vina ........................................77
5.2.2.2 Resultados da reordenamento da sequência de tarefas no job .....................................84
6 CONCLUSÕES ...........................................................................................................................90
7 PERSPECTIVAS .........................................................................................................................92
8 REFERÊNCIAS ...........................................................................................................................93
9 APENDICE A .............................................................................................................................98
10 APENDICE B .........................................................................................................................103
1
1 INTRODUÇÃO
O planejamento de fármacos tem à disposição as ferramentas
computacionais necessárias para a redução do tempo e diminuição dos custos
envolvidos no processo de desenvolvimento dos produtos terapêuticos ligados
à inovação.
A modelagem molecular de fármacos está associada ao estudo in silico
de estruturas e propriedades químicas de moléculas de interesse farmacêutico,
de forma a permitir, por exemplo, uma análise entre atividade biológica e
propriedades físico-químicas através de procedimentos computacionais.
Estima-se que a utilização de métodos in silico no planejamento de fármacos
pode reduzir os custos e o tempo de desenvolvimento de um novo fármaco em
até 50% (GELDENHUYS et al., 2006; MCGEE, 2005). Isto ocorre porque
muitas vezes o número de moléculas que precisam ser sintetizadas e testadas
experimentalmente passa a ser drasticamente reduzido por conta da alta
preditividade e confiabilidade dos métodos computacionais (in silico),
abreviando assim o tempo de desenvolvimento de um novo fármaco. O docking
molecular, um método da modelagem molecular, determina se há interação
energética favorável entre estas duas moléculas (ligante e alvo biológico), no
intuito de elucidar as razões moleculares responsáveis pela afinidade entre
estes ligantes (fármacos em potencial) e o sítio ativo do receptor (alvo
biológico). Desta forma, as indústrias farmacêuticas investem cada vez mais na
aquisição de computadores mais eficientes para seus centros de pesquisa
(MCGEE, 2005).
2
O procedimento de docking molecular busca pela posição e orientação
que maximiza essas interações intermoleculares. Assim, o ligante e o receptor
formam um complexo por complementaridade estrutural e por estabilização
energética. Um dos principais objetivos dos estudos na área de planejamento
in silico de fármacos é prever a intensidade e a especificidade com que
pequenas e médias moléculas, normalmente denominadas de ligantes (drogas
ou fármacos, em potencial) se liguem ao sítio ativo de um receptor biológico,
tipicamente uma bio-macromolécula (alvo farmacológico), modificando assim o
seu ciclo bioquímico/farmacológico, através de modulação da sua resposta
biológica.
Geralmente, o estudo de docking molecular ocorre na situação de se
conhecer apenas o alvo biológico e, para descobrir o ligante mais adequado
para este alvo é necessária a realização de docking molecular em larga escala,
comumente denomina-se nestes casos o termo virtual screening, entre o
receptor e um grande número de ligantes para descobrir quais deles tem maior
afinidade para interagir de maneira a formar um complexo estável com o
receptor. Ocorre que estes métodos podem apresentar, por vezes, uma alta
demanda computacional quando o número de ligantes e alvos a serem
testados é alto e quando se busca alta precisão nos resultados numéricos
obtidos.
Segundo W. Cirne, um grid computacional é uma rede de computadores
independentes em que indivíduos se conectam para usufruir maior poder
computacional para realizar tarefas de forma paralela, sem a necessidade de
3
conhecer os detalhes técnicos do grid computacional em questão (CIRNE,
2002).
A ideia de aplicar tecnologias de computação distribuída, como por
exemplo, grids computacionais para a formação de verdadeiros “laboratórios
virtuais” é atualmente é muito explorada mundo afora em projetos de diversas
áreas do conhecimento humano, inclusive em modelagem molecular. Neste
contexto, é possível encontrar iniciativas de estudos de docking molecular
acelerados por poderosas infraestruturas computacionais (BUYYA et al., 2002;
ABREU et al., 2010; ZHANG et al., 2008; JIANG et al., 2008; DOMINGUEZ;
BOELENS; BONVIN, 2003; DE VRIES; VAN DIJK; BONVIN, 2010). Desta
forma, o tempo total necessário para obtenção dos resultados de aplicações
desta natureza pode ser significativamente reduzido, uma vez que cada
execução de docking molecular será distribuído nas máquinas pertencentes a
um grid computacional, de forma abstraída para o usuário final, ou seja, este
usuário apenas submete os jobs (aplicações paralelas contendo as tarefas
individuais), enquanto o ambiente de grid computacional se encarrega de
distribuí-los e executá-los de maneira otimizada através das máquinas que
constituem o sistema integrado, passando a impressão que toda a execução
está sendo realizada na máquina do usuário.
O objetivo deste trabalho é obter uma plataforma unificada e intuitiva
para execução de docking molecular em grande escala com versões para os
sistemas operacionais mais utilizados no meio acadêmico, Linux e Windows.
Esta plataforma está apta para ser usada em conjunto com dois dos programas
“código livre” (opensource) de docking molecular mais utilizados atualmente, o
4
AutoDock (GOODSELL; MORRIS; OLSON, 1996; MORRIS et al., 2009) e o
AutoDock Vina (TROTT; OLSON, 2010).
As execuções dos cálculos de docking são realizadas em paralelo, no
ambiente de grid computacional OurGrid (ANDRADE et al., 2003). Nesta
interface, o usuário poderá lidar com todos os componentes do grid
computacional de forma prática e abstraida, e assim, manter o foco nos dados
químicos sobre moléculas de interesse, na construção de seu virtual screening.
5
2 REVISÃO DE LITERATURA
2.1 Modelagem Molecular
A modelagem molecular é o estudo in silico de estruturas e propriedades
químicas de moléculas. Como mencionado anteriormente, a utilização destes
métodos podem reduzir significativamente o tempo e os custos necessários
para o desenvolvimento de novos fármacos (GELDENHUYS et al., 2006). Um
exemplo da importância destes estudos é que a utilização desta abordagem
ajudou a encontrar inibidores do HIV (WLODAWER, 2002; DESJARLAIS et al.,
1990).
Suas aplicações vão desde a criação/edição (MDL ISISDraw, 2012;
XDrawChem, 2012) e visualização (DELANO, 2004;2009; SAYLE;
MILNERWHITE, 1995) de moléculas, até otimização de geometrias
(PURANEN; VAINIO; JOHNSON, 2010; HESS et al., 2008) e interações entre
alvos biológicos e seus potenciais ligantes, como é o caso do docking
molecular (GOODSELL; MORRIS; OLSON, 1996; MORRIS et al., 2009;
TROTT; OLSON, 2010).
2.1.1 Docking Molecular
O docking molecular é uma das técnicas da modelagem molecular que
busca obter com precisão as condições estruturais e energéticas para a
interação favorável entre um determinado alvo biológico (receptor) e uma dada
molécula (ligante). Este tipo de interação tem como objetivo formar um
complexo estável entre ambas as moléculas (LENGAUER; RAREY, 1996), o
que frequentemente leva a um efeito modulador no âmbito dos processos
6
biológicos ou farmacológicos. Os alvos biológicos mais típicos são de natureza
protéica, apesar de poder ser também de outros tipos, como ácidos nucléicos,
por exemplo. Um exemplo de interação para a formação de um complexo
(receptor + ligante) pode ser observado na Figura 2.1.
Figura 2.1 – Exemplo de um complexo estrutural (PDB: 1ULB) formado por um receptor (cor
laranja) e seu ligante co-cristalizado (modelo de esferas e ligações, em cores azul e branca). O
melhor resultado de re-docking molecular pode ser observado detalhadamente (modelo de
ligações, em cor vermelha), bem como sua alta superposição com a estrutura do ligante co-
cristalizado. (a) A visão panoramica da superfice do receptor, incluindo o ligante co-cristalizado
e a solução de docking. (b) Uma visão detalhada do sitio ativo do receptor.
7
Um dos principais objetivos dos estudos na área de planejamento in
silico de fármacos é prever a intensidade e a especificidade com que pequenas
moléculas, normalmente denominadas de ligantes (drogas ou fármacos, em
potencial) se ligam ao sítio ativo de um receptor biológico (região da
biomolécula onde ocorre as interações químicas entre o ligante e o alvo
biologico), tipicamente uma bio-macromolécula (alvo farmacológico),
modificando assim o seu ciclo bioquímico/farmacológico, através de modulação
da sua resposta biológica, tanto no homem quanto em outros animais ou
organismos patogênicos. Em termos gerais, esta modulação pode ser
tipicamente de dois tipos: i) agonista, ativando este receptor ou alvo
farmacológico, para que este desempenhe sua atividade biológica; ii)
antagonista, de forma que inibe a ação do receptor farmacológico evitando que
ele desempenhe sua atividade biológica, por exemplo reagindo com o substrato
natural que se liga a ele, uma vez que o sitio ativo está bloqueado. A decisão
sobre inibir ou ativar uma enzima que é eleita como potencial alvo
farmacológico, por exemplo, vai depender do mecanismo farmacológico e do
propósito terapêutico.
A obtenção das estruturas moleculares ocorre geralmente através da
utilização de métodos experimentais de difração de raios-X dos complexos
(receptor + ligante) cristalizados, que posteriormente são resolvidos
cristalograficamente e digitalizadas no formato PDB (PDB Database, 2012). É
possível visualizar as características e propriedades destas estruturas
registradas nos arquivos em formato PDB, através de programas projetados
especificamente para estes propósitos, tais como o AutoDock Tools (ADT,
8
2012), o Rasmol (SAYLE; MILNERWHITE, 1995), e o PyMol (DELANO,
2004;2009), dentre outros.
Durante a execução do docking molecular, tipicamente na região mais
importante do receptor, denominada sítio ativo, onde ocorre a reação com o
substrato natural, a molécula do ligante será posicionada pelo programa de
docking molecular na tentativa de ser encontrada a posição e orientação que
favoreça a ligação desta com o receptor biológico, levando em consideração
suas estruturas e a função de pontuação para determinar a estabilidade do
complexo.
Nos programas de docking molecular que utilizam uma função de
pontuação (score) baseada em campos de força (force field), que é o caso dos
programas AutoDock e AutoDock Vina, tal estabilidade da ligação ligante-
receptor é medida pela intensidade da energia de interação das forças
intermoleculares envolvidas na ligação entre os átomos do ligante e os átomos
do sítio ativo do receptor. Estas forças intermoleculares são fracas comparadas
com as forças intramoleculares (ligações covalentes) e são, em geral,
reversíveis. Quanto menor (mais negativa) for a energia de interação, maior é a
estabilidade do complexo (receptor + ligante). Como exemplo, costuma-se
observar nos resultados de cálculos, que uma interação de ligação de
hidrogênio é, tipicamente, cerca de 10 vezes mais estável do que uma
interação do tipo van der Waals. Portanto, o número de interações
intermoleculares e os tipos e intensidades das mesmas vão ter profunda
influência sobre a estabilidade de interação calculada (através do programa de
docking molecular) entre o ligante e o receptor de interesse. É importante
9
ressaltar que apenas determinadas moléculas se “encaixam” no sítio ativo do
alvo biológico, muitas vezes por razões de tamanho e volume disponíveis. Esta
estratégia de busca pela interação ligante-receptor é amplamente associada à
idéia da “chave-fechadura” (FISCHER, 1894), onde apenas a chave apropriada
está apta a se encaixar na fechadura. Um avanço do modelo “chave-
fechadura”, de Fischer, foi proposto por Koshland (KOSHLAND, 1958), que
considera um “ajuste induzido” do receptor (enzima) pela presença de uma
molécula diferente do seu substrato natural, tipicamente um modulador artificial
candidato a fármaco, por exemplo.
O docking molecular é um excelente método para avaliar os possíveis
ligantes de uma proteína de interesse, uma vez que tem a vantagem de utilizar
a abordagem “in silico” que dispensa a necessidade de reproduzir
exaustivamente em laboratório cada possibilidade de ligação. Assim, apenas
as moléculas que demonstrem mais condições de uma ligação estável serão
sintetizadas em laboratório, a posteriori, aumentando a capacidade de teste e
economizando tempo e dinheiro (GELDENHUYS et al., 2006).
2.1.1.1 AutoDock
O programa AutoDock é uma ferramenta open-source para realização de
docking molecular, que se baseia em cálculos computacionais para obter a
energia de interação mínima para o complexo ligante-receptor, explorando os
principais graus de liberdade das moléculas de interesse (GOODSELL;
MORRIS; OLSON, 1996; MORRIS et al., 2009).
10
Antes da execução deste programa, é necessário converter o formato dos
arquivos das moléculas para o formato PDBQT, que é um formato estendido do
PDB onde estão inclusas, além das informações estruturais da molécula
contidas no formato PDB, as cargas elétricas de cada átomo que constitui a
molécula (Q) e os tipos e números de torções (T). A geração do arquivo
PDBQT é obtida por meio da utilização do programa utilitário AutoDock Tools
(ADT, 2012), que faz parte do pacote de ferramentas computacionais
compatíveis com o programa Autodock, permitindo que os usuários realizem
todo o processamento dos arquivos e ajustes para a execução dos cálculos de
docking molecular.
Para a realização do cálculo de docking no programa AutoDock, é
necessário pré-calcular os mapas de energia de interação para os tipos de
átomos que compõe os ligantes de interesse. Estes mapas são construídos a
partir da simulação de sondas atômicas que varrem tridimensionalmente a
região definida como a mais importante para a busca das soluções de docking
(poses), particularmente no sítio ativo do alvo farmacológico, quando esta
informação é conhecida. O programa AutoGrid (que faz parte do pacote de
programas do AutoDock) é utilizado para este mapeamento energético. Por
exemplo, se o ligante possui um átomo de carbono do tipo aromático e um
oxigênio aceitador de ligação de hidrogênio, estes átomos serão usados na
varredura tridimensional na região do sitio ativo e as energias de interação de
cada um destes átomos com os átomos do sitio ativo do receptor serão
mapeadas (A.map e OA.map, respectivamente).
11
O objetivo deste pré-cálculo com o módulo AutoGrid é tornar o cálculo
de docking mais rápido e eficiente como um todo, uma vez que não haverá a
necessidade de recalcular as energias de interação dos átomos envolvidos
durante o processo de docking, realizado efetivamente pelo módulo AutoDock.
O mapeamento eletrônico para o cálculo do potencial eletrostático também é
realizado através do módulo AutoGrid. Está etapa inicial é obrigatória, uma vez
que o módulo AutoDock necessita destes mapas para a sua execução, na
próxima etapa do cálculo.
Antes de realizar a execução, tanto do AutoGrid quanto do AutoDock, é
necessário gerar os arquivos de configuração, que comandam detalhadamente
a realização dos cálculos executados por cada um destes programas. Estes
arquivos de configuração são denominados, grid parameter file (gpf) e docking
parameter file (dpf), para os programas AutoGrid e AutoDock, respectivamente.
A criação destes arquivos de configuração é realizada através da utilização da
interface gráfica AutoDock Tools (ADT, 2012). Estes arquivos de configuração
contêm informações importantes sobre como serão efetuadas as buscas pela
melhor solução estrutural e energética de docking. Dependendo dos critérios
usados para a edição destes arquivos, é possível tornar os cálculos de docking
mais precisos, porém com alta demanda computacional para cada cálculo
individual de docking molecular, chegando a impactar o tempo necessário para
o término do processo em até algumas ordens de magnitude.
De posse das moléculas em seu formato PDBQT e dos mapas atômicos
gerados pelo programa AutoGrid, é possível realizar o cálculo de docking
molecular usando-se o programa AutoDock. Utilizando uma combinação de
12
algoritmos genéticos, principalmente o LGA (Lamarckian Genetic Algorithm), o
programa AutoDock busca pela melhor solução de docking entre receptor e
ligante.
2.1.1.2 AutoDock Vina
O programa AutoDock Vina (TROTT; OLSON, 2010) é uma versão
adaptada do programa AutoDock (GOODSELL; MORRIS; OLSON, 1996;
MORRIS et al., 2009) com suporte a execução multicore, com o intuito de
usufruir da disponibilidade de todos os núcleos de processamento presentes
nos computadores atuais. Além disto, nesta versão modificada do AutoDock, o
processo de realização do docking molecular se tornou mais simples,
automático e intuitivo em comparação ao AutoDock, uma vez que requer
apenas as estruturas das moléculas que serão usadas no docking molecular,
dispensando a etapa do cálculo com o módulo AutoGrid.
O docking molecular com o programa AutoDock Vina pode ocorrer em
diversos núcleos de processamento existentes na máquina para paralelizar a
carga ou demanda computacional dos cálculos envolvidos no procedimento, a
fim de acelerar o processo como um todo, com resultados bastante
satisfatórios de desempenho. A estratégia de paralelismo utilizada pelo
AutoDock Vina consiste em dividir a superfície de busca de seus algoritmos
genéticos em diversas subáreas de cálculos para distribuí-las nos diversos
núcleos de processamento da máquina. Assim, cada núcleo de processamento
realiza a evolução das populações em uma determinada região específica do
domínio de buscas e no final, os complexos receptor-ligante mais estáveis
13
encontrados durante a evolução das populações, em cada subárea, são
reunidos e ordenados de forma crescente em relação aos valores de energias
de interação calculados. Esta estratégia torna o programa AutoDock Vina
consideravelmente mais rápido do que o programa AutoDock, sendo até 62
vezes mais rápido (TROTT; OLSON, 2010).
2.2 Computação Distribuída
A computação distribuída consiste na utilização de técnicas para unir a
capacidade de processamento de vários computadores para a execução de
uma tarefa complexa que esteja relacionada a uma elevada demanda
computacional.
Existem diversos tipos de arquiteturas distribuídas, sendo que os mais
comumente usados são o cluster e o grid computacional. Embora sejam
similares no comportamento, ambas possuem suas vantagens e desvantagens
(ver comparação na tabela 1).
Tabela 1 – Comparativo entre alguns pontos chaves entre cluster e grid computacional
(SADASHIV; KUMAR, 2011).
Cluster Grid Computacional
Máquinas homogêneas Máquinas heterogêneas
Dentro dos limites institucionais Podem estar distribuídos geograficamente
Controle centralizado, todo processamento
das máquinas disponíveis são dedicados à
máquina central (front-end), tornando-as
uma única máquina robusta
Cada máquina possui autonomia, podendo
ser utilizada para outros propósitos quando
não estiver integrando o grid.
14
Um dos ambientes de grid computacional mais conhecido e utilizado no
mundo é o BOINC (BOINC, 2012), desenvolvido pela Universidade de
Berkeley. A média diária de poder de processamento neste ambiente de grid
computacional é de aproximadamente 10 petaFLOPS, ou seja, 10 quadrilhões
de operações de ponto flutuante por segundo. Este poder de processamento
supera o obtido pelo supercomputador (cluster) mais rápido do mundo, em
junho de 2011, o K Computer. Este supercomputador, que utiliza a arquitetura
SPARC64 da Fujitsu, na época possuía 548.352 núcleos de processamento e
seu poder de processamento era de aproximadamente 8.2 petaFLOPS
(TOP500 Supercomputers, 2012). Atualmente, ele se encontra na terceira
posição possuindo 705.024 núcleos de processamento e tem o poder
computacional de 10.6 petaFLOPS, muito próximo do obtido no ambiente de
grid computacional BOINC. Em uma análise mais atualizada, o
supercomputador mais rápido do mundo, nos dias de hoje, é o Titan (TOP500
Supercomputers, 2012). Este supercomputador, que utiliza a arquitetura Cray
XKY da Cray, possui 560.640 núcleos de processamento e seu poder
computacional é de aproximadamente 17,6 petaFLOPS.
Como, geralmente, a infraestrutura computacional de um ambiente de
grid computacional é proporcionada por doações voluntárias dos ciclos de
processamento ociosos das máquinas dos usuários, em suas casas ou
ambientes de trabalho, os custos de manutenção e consumo energético destas
máquinas são arcados por estes próprios usuários, tornando o acesso a este
poder computacional muito mais barato do que manter um supercomputador.
Vale ressaltar que, na maioria dos casos, grids computacionais, são acessíveis
a qualquer pessoa ou usuário que tenha interesse em participar deste tipo de
15
ambiente distribuído, ao contrário de muitos supercomputadores que são de
uso restrito de empresas ou outras instituições.
Outro meio de utilização de arquiteturas distribuídas é em nível de
núcleos de processamento. Nos processadores atuais, podemos observar que
muitos deles possuem mais de um núcleo de processamento, como, por
exemplo, em processadores dual-core ou quad-core, onde é possível distribuir
uma tarefa entre estes núcleos de processamento do processador, comumente
denominados CPU. Um bom exemplo, que utiliza esta estratégia para
aumentar o desempenho computacional da aplicação, é o programa AutoDock
Vina (TROTT; OLSON, 2010). O mesmo ocorre com as placas gráficas atuais,
onde através de uma linguagem de programação especializada (CUDA, 2012),
pode-se usar estes núcleos de processamento gráfico, comumente
denominados GPU, para acelerar a execução do programa de maneira análoga
ao que ocorre a nível de CPUs. Esta abordagem vem sendo amplamente
usada em vários projetos na área de modelagem molecular como é o caso do
programa de busca “as cegas” pelo sitio ativo (SUKHWANI; HERBORDT,
2010) e até mesmo no campo do docking molecular (ROH et al., 2009).
Devido a sua relevância neste presente trabalho, iremos detalhar os
conceitos sobre grid computacional e sua aplicabilidade no meio científico.
2.2.1 Grid Computacional
Ambientes de grids computacionais são tipicamente formados por um
conjunto de computadores, autônomos e geralmente heterogêneos, ou seja,
máquinas com configurações de hardware e software diferentes entre si,
interconectados em larga escala, e que podem, até mesmo, estar distribuídos
16
geograficamente para atender uma demanda computacional elevada (SMITH,
2004). O papel principal deste conjunto de computadores autônomos é realizar
tarefas complexas que são inviáveis de serem executadas em apenas uma
única máquina. Além da sua capacidade de processamento, todos os recursos
das máquinas envolvidas podem ser compartilhados entre si, tais como sua
capacidade de armazenamento, sensores e outros periféricos ligados a elas.
Desta forma, é possível obter um poder computacional muito grande, de forma
abstraida para o usuário do grid computacional. Uma analogia pode ser feita
com as redes de telefonia ou de eletricidade. Em ambas, o usuário não precisa
conhecer exatamente onde está localizado fisicamente cada componente das
redes mencionadas para utilizar seus recursos (CIRNE, 2002). Desta forma,
assim como é conectado um equipamento elétrico na tomada para obter a
energia elétrica, basta conectar um computador a um grid computacional, para
ter acesso aos recursos dos computadores distribuídos ao longo de toda a
estrutura de computação distribuída.
Empresas e instituições que fazem parte de um ambiente de grid
computacional doam ciclos de processamento de seus computadores em
período ocioso para, quando precisarem, poderem ter acesso a mais recursos
dos outros membros do grid computacional. As principais características de um
grid computacional é abstrair os detalhes técnicos ao utilizar os recursos que
podem estar, inclusive, distribuídos geograficamente (Figura 2.2) e a ausência
de um controle central para todo o ambiente de grid computacional. Para
atender as demandas computacionais, é esperado um bom nível de Qualidade
de Serviço (Quality of Service, QoS) (FOSTER, 2002), tais como
disponibilidade, segurança e tempo de resposta.
17
Figura 2.2 – Heterogeneidade e distribuição geográfica de um grid computacional (UK Total,
2012). Extraido de http://www.uk.total.com/activities/innovative_computing.asp
O conceito proposto para tentar definir os principais aspectos da
computação em grid que a diferencia das demais estruturas de computação
distribuída são (CIRNE, 2002):
A heterogeneidade dos componentes do grid computacional, uma vez que
consegue realizar a interação entre computadores que podem utilizar
arquiteturas de hardwares e sistemas operacionais diferentes.
A dispersão geográfica do grid computacional, levando em consideração
que os recursos computacionais de um grid podem estar distribuídos em
todo o mundo, não se limitando a barreira física institucional.
O compartilhamento dos recursos do grid computacional: todo poder
computacional do grid está disponível para ser utilizado em diversos
propósitos.
18
Múltiplos domínios administrativos em um ambiente de grid computacional,
uma vez que algumas instituições podem doar e receber recursos
computacionais para outras instituições.
O controle distribuído, caracterizando a ausência de um mecanismo de
controle único e centralizado para todo o grid computacional.
Um exemplo que expressa à idéia de um grid computacional simples é a
própria internet, onde são utilizados recursos de servidores externos para obter
dados ou processamento (CIRNE, 2002). Não é preciso saber o caminho feito
a cada roteador e nem a localização física de cada servidor para usufruir das
funcionalidades destes vários servidores na internet.
2.2.2 OurGrid
O projeto OurGrid é uma iniciativa nacional de implementação de um
ambiente de grid computacional, desenvolvido pela Universidade Federal de
Campina Grande (UFCG) desde 2003 (ANDRADE et al., 2003). O OurGrid
partilha da filosofia “opensource” e é escrito na linguagem de programação
Java, o que permite que todos os seus componentes possuam versões para
todos os sistemas operacionais que suportem a plataforma Java. Uma lista
contendo alguns projetos que utilizam a plataforma OurGrid de ambiente grid
computacional pode ser encontrada no site oficial do projeto (OurGrid, 2012).
O OurGrid é voltado para a execução de tarefas que utilizam o modelo
BoT (bag-of-tasks), ou seja, os processos em paralelo que não precisam se
comunicar entre si, por apresentarem independência lógica e temporal. Embora
as tarefas BoT sejam em sua grande maioria simples, elas são muito utilizadas
19
em diversos cenários científicos (CIRNE et al., 2003), o que aumenta a
aplicabilidade deste sistema para aplicações científicas.
A infraestrutura de rede utilizada é a peer-to-peer (p2p), que é uma
infraestrutura descentralizada e heterogênea de compartilhamento de recursos,
onde não há a necessidade de um servidor central para controlar os
integrantes da rede (SCHOLLMEIER, 2002). Sendo assim, todos os nós
integrantes da rede podem compartilhar seus recursos, mesmo possuindo
diferentes arquiteturas de hardware e software. Para garantir uma distribuição
justa dos recursos, o OurGrid utiliza um mecanismo chamado Network of
Favours, de modo que a empresa ou instituição que contribuir cedendo mais
recursos terá direito a mais recursos alocados quando necessitar de mais
poder computacional. Desta forma o compartilhamento de recursos
computacionais é amplamente incentivando.
O método mais simples para obter acesso ao poder computacional
disponível no ambiente de grid computacional do projeto OurGrid é se
registrando no OurGrid Portal (OurGrid Portal, 2012). Porém, desta forma, não
é possível contribuir com recursos próprios para o ambiente de grid
computacional e, consequentemente, a prioridade para a execução das tarefas
(tasks) contidas no job do usuário será baixa, por causa do mecanismo
Network of Favours. Para aumentar a prioridade de execução das tarefas
(tasks) e obter acesso a maior quantidade de máquinas, o usuário deve instalar
seu próprio grid computacional contendo os componentes da plataforma
OurGrid. Neste caso, pode-se optar entre integrar o grid computacional do
projeto OurGrid, através da opção join the community nas configurações do
20
componente Peer, ou se deseja apenas criar um ambiente de grid
computacional pessoal ou institucional. Os três componentes responsáveis
pela gestão e comunicação do ambiente OurGrid são:
O componente Broker é o responsável por escalonar as tarefas (tasks) ao
longo dos computadores (Workers) disponíveis no ambiente de grid
computacional. As principais interações entre o usuário e o ambiente de grid
computacional ocorrem através deste componente. Este componente
necessita ter acesso a, pelo menos, um Peer para iniciar suas atividades.
O componente Peer é o responsável por gerenciar os computadores
pertencentes ao grid computacional de certa empresa ou instituição. Este
componente identifica e disponibiliza as máquinas ociosas (Workers) para a
execução remota de uma dada tarefa. Desta forma ele é responsável por
autorizar e realizar a comunicação entre Brokers e Workers.
O componente Worker é responsável pela execução das tarefas recebidas
remotamente. Para isso, este componente recebe os arquivos de entrada e
o programa que será utilizado para realizar o processamento e
posteriormente retorna o resultado deste processamento de volta para a
máquina do usuário que requisitou a execução. Este componente está
presente em cada computador integrante do grid computacional que esteja
apto para ceder seus recursos computacionais.
Para realizar a comunicação entre os componentes do ambiente de grid
computacional OurGrid, é necessário utilizar o protocolo XMPP. Este protocolo
21
detecta a presença destes componentes e possibilita a troca de mensagens
entre eles.
O conjunto de tarefas (tasks) do OurGrid é denominado job. Para
realizar a execução destes jobs, o OurGrid utiliza uma estrutura de arquivo
chamada JDF (Job Description File), na qual é definido os arquivos de entrada
(input) e os de saída (output) bem como a execução, e os parâmetros que
serão utilizados.
Basicamente, cada task é subdividida em três partes (init, remote e
final), as quais indicam a máquina remota como proceder de acordo com a fase
em que a tarefa (task) se encontra. A fase init, que corresponde ao início,
consiste em transferir os arquivos necessários para a execução do job, bem
como o programa utilizado e seus arquivos de entrada (input). A fase remote,
consiste na realização da execução em si. Nela, constará o comando que será
realizado na máquina remota. Há também uma fase chamada final, que
consiste no retorno dos resultados (output) gerados pela execução da tarefa.
Antes de definir as tarefas, é necessário iniciar as configurações padrão, ou
seja, comum a todas as atividades (tasks). No inicio do arquivo Job Description
File, Após a tag “job”, é possível especificar o label (nome que será exibido
durante sua execução) e os requisitos mínimos necessários que o computador
remoto precisa para realizar a execução do job, como por exemplo, qual
sistema operacional, quantidade de memória RAM, espaço em disco, dentre
outros. Também há a possibilidade de definir etapas padrões para as tarefas,
em qualquer uma das fases init, remote e final, e assim as tarefas que não
22
possuam registro de alguma destas fases, usará o que foi definido como
padrão.
Os comandos usados para manipular os arquivos entre a máquina do
usuário e o ambiente de grid computacional são o put, store e o get. Os
comandos put e store armazenam, no ambiente de grid computacional, os
arquivos necessários para a execução das tarefas (tasks). A diferença entre
estes dois comandos está no tempo em que o arquivo permanece na máquina
remota (Worker). O comando store armazena permanentemente o arquivo na
máquina remota (Worker), ideal na situação onde o arquivo necessita ser
utilizado mais de uma vez, enquanto o comando put armazena o arquivo
somente até o termino da execução, ideal para arquivos que serão utilizados
poucas vezes. O comando get retorna o arquivo resultante da execução remota
de volta para a máquina do usuário.
2.2.3 Aplicações de grids computacionais
As motivações para o uso de um ambiente de grid computacional podem
variar entre os modelos voltados a propósitos sociais, como analises climáticas
e previsão de terremotos, até modelos comerciais e modelos moleculares.
2.2.3.1 BOINC
A plataforma opensource para computação voluntaria BOINC (BOINC,
2012) é uma ferramenta que forma um grid computacional através de
computadores comuns, disponibilizados voluntariamente pelos usuários que
23
instalam seu software, voltado para pesquisa cientifica. A escolha dos projetos
que serão beneficiados pelos ciclos de processamento doados fica ao encargo
do próprio usuário, através da extensa lista de projetos suportados pelo
BOINC. Além da possibilidade de fornecer o poder computacional voluntário,
há também a opção de criar novos projetos dentro da plataforma BOINC e,
desta forma, se beneficiar do poder computacional de outros usuários.
O processamento dos dados pode ser feito através dos convencionais
núcleos de processamento do processador (CPU) como também utilizar os
núcleos de processamento gráfico (GPU), em opções mais recentes.
Para incentivar a colaboração, é disponibilizado um website com uma
tabela de pontuação e classificação dos usuários, indicando quais colaboraram
mais ativamente no desempenho do grid computacional e seus respectivos
projetos. O serviço conta com, atualmente, mais de 250 mil voluntários ativos e
mais de 350 mil computadores.
Como pode ser observado na lista de projetos ativos (Choosing BOINC
projects, 2012), os projetos possuem suporte a diversos sistemas operacionais,
indo desde sistemas desktops convencionais como Windows, Mac e Linux, até
sistemas um pouco mais recentes, como, por exemplo, o Android.
O World Community Grid (World Community Grid, 2012) é um ambiente
de grid computacional que emprega a plataforma BOINC para utilizar os ciclos
de processamento doados por voluntários. Os projetos disponibilizados neste
website são focados para benefício humanitário. Alguns destes projetos são
voltados para a área da saúde e executam o programa AutoDock Vina na
máquina do voluntário, na tentativa de encontrar um potencial fármaco para
24
algumas das doenças estudadas. Entre os projetos ativos que utilizam esta
abordagem estão Say No to Schistosoma (Say No to Schistosoma, 2012), GO
Fight Against Malaria (GO Fight Against Malaria, 2012) e Drug Search for
Leishmaniasis (Drug Search for Leishmaniasis, 2012).
2.2.3.2 XSede
Sucessor do agora descontinuado TeraGrid, o Xsede (Xsede, 2012) é
um projeto que utiliza, em larga escala, computadores e bancos de dados para
realização de pesquisas cientificas. É coordenado pelo NSF, National Science
Foundation (NSF, 2012), e é uma parceria entre diversas instituições
acadêmicas dos Estados Unidos.
De forma geral, para utilizar seus recursos, o usuário precisa se
cadastrar e enviar uma proposta para a utilização de um determinado recurso.
Estas requisições podem ser:
Iniciante (startup): Alocação recomendada para os novos usuários. É um
nível limitado, e seu uso é ideal para demonstrações em sala de aula e para
conhecer sua infraestrutura. Pode ser requisitado por funcionários e
pesquisadores pós-doutorados em universidades dos Estados Unidos como
também por professores do ensino fundamental e médio americanos. Este
nível tem a limitação de um ano de duração, podendo ser renovado após o
termino, e 200 mil CPU-horas de processamento.
Educação (education): Comumente utilizado para aulas acadêmicas e
treinamentos, este nível é apropriado quando se tem datas fixadas para inicio e
25
termino da atividade. Possui os mesmos limites que o nível iniciante,
diferenciando do mesmo apenas pela natureza e propósito do estudo.
Pesquisa (research): Para usuários que necessitam de mais recursos do
que os que estão disponíveis nos níveis anteriores. A alocação dos recursos é
feita sob medida e é concedido de acordo com a meritocracia. A requisição no
nível de pesquisa só é aberta uma vez a cada trimestre.
Independentemente do tipo de alocação almejado pelo pesquisador, não
há custo algum para usufruir o poder computacional disponível neste sistema,
tornando sua infraestrutura bastante acessível.
2.3 Grids computacionais aplicados em áreas diversas
O projeto ImmunoGrid (PAPPALARDO et al., 2009) utiliza o ambiente
distribuído de um grid computacional colaborativo para a descoberta,
formulação e otimização de vacinas. Seu funcionamento consiste em
simulações computacionais, distribuídos em larga escala em um ambiente de
grid computacional, das interações entre antígenos e o sistema imunológico.
Estas interações são calculadas através do uso de modelos matemáticos de
equação diferencial e autómato celular para modelar as interações entre as
moléculas e as células responsáveis pela resposta do sistema imunológico. O
ImmunoGrid possui um portal web voltado a pesquisa e aprendizado. Porém, o
acesso a estes recursos é restrito a projetos selecionados pela equipe do
ImmunoGrid. Durante os testes de desempenho neste ambiente de grid
computacional, foram simuladas 1600 vacinas em 100 camundongos,
26
representando os 24 meses de vida de cada camundongo, em apenas 26
horas.
No estudo realizado por Christopher Woods (WOODS et al., 2005), um
dos projetos realizados envolve o uso de grids computacionais para realizar
estudos de dinâmica molecular. Neste projeto, montou-se um ambiente de grid
computacional com 450 máquinas heterogêneas e não dedicadas, espalhadas
por toda a universidade de Southampton, e integradas através do ambiente
Condor (HTCondor, 2013). Realizou-se múltiplos cálculos de dinâmica
molecular com a proteina NtrC (proteína C reguladora de nitrogênio) em
diversas condições, como por exemplo, de temperatura. Isto resultou no total
de 64 execuções sendo realizadas em paralelo no ambiente de grid
computacional. Foi utilizado um cluster adicional neste tipo de sistema, que
melhorou a eficiencia do ambiente de grid computacional de 63 para 78% do
tempo ativo.
2.4 Docking molecular utilizando arquiteturas distribuídas
O Dovis (ZHANG et al., 2008) é um sistema que utiliza o ambiente
distribuído de um cluster para realizar virtual screening em larga escala através
de uma interface gráfica. O programa de docking molecular utilizado neste
estudo foi o AutoDock (GOODSELL; MORRIS; OLSON, 1996). Este sistema
HPC, high-performance computing, é capaz de realizar, em cada unidade de
processamento (CPU), entre 500 a 1000 cálculos de docking molecular por dia.
Seu funcionamento pode ser descrito em três etapas, sendo elas:
27
Pré-docking: Nesta etapa, ocorre a conversão das moléculas
selecionadas, do formato PDB (ou MOL2), para o formato PDBQT, o
qual é o formato padrão para a execução do cálculo de docking
molecular através do AutoDock. Após esta conversão de arquivos, as
moléculas são dividas em N subgrupos, sendo N o número de
processadores disponíveis no cluster e cada subgrupo tendo
aproximadamente o mesmo número de moléculas.
Docking molecular em paralelo: Antes do procedimento de docking
molecular, é efetuado, para cada receptor, o cálculo dos mapas da
grade de energia (utilizando o programa AutoGrid, explicado na seção
do 2.1.1.1 AutoDock) de cada tipo de átomo presente nos ligantes que
irão interagir com o receptor em questão. Após estes cálculos, é
efetuado o docking molecular e os resultados, baseados nas energias de
interação calculadas, são comparados entre os resultados dos outros
processadores, para assim, ser possível determinar os melhores
resultados globais.
Pós-docking: Os melhores resultados coletados na etapa anterior são
comprimidos e gravados em um diretório do sistema, com os resultados
finais.
Em sua versão 2.0 (JIANG et al., 2008), com o intuito de aumentar a
performance, o Dovis teve seu algoritmo de escalonamento modificado para
dinâmico, permitindo o balanceamento do cluster em tempo real. Além disso, o
código fonte do programa AutoDock também foi modificado para reduzir os
acessos ao disco rígido na escrita dos arquivos de resultados durante o
procedimento de docking molecular com este programa, uma vez que o cluster
28
em questão utilizava um disco rígido comum a todas as máquinas, e o excesso
de escrita simultânea neste disco sobrecarregava-o, tornando-o mais lento, e
consequentemente os cálculos de docking molecular demoravam mais.
Com o intuito de classificar as soluções de docking molecular mais
favoráveis dentre as encontradas nos cálculos, os programas de docking
molecular utilizam uma função de pontuação, comumente conhecida como
score, e que, geralmente, é única para cada programa. O Dovis 2.0 permite
que o usuário utilize uma função de pontuação diferente da empregada no
programa de docking molecular selecionado, procedimento este conhecido pelo
nome de re-score. Com isso, pode-se gerar uma nova classificação para os
resultados obtidos. Além disto, há a opção de converter os resultados finais
para o formato SDF, formato amplamente utilizado na modelagem molecular de
fármacos (JIANG et al., 2008).
Os testes de validação do desempenho do Dovis 1.0 com o banco de
dados ZINC, utilizando gradualmente até 128 núcleos de processamento
(CPUs), demonstrou uma progressão quase linear no ganho de desempenho
obtido. O cruzamento do banco de dados ZINC com a cadeia A da proteína
Ricina, utilizando 256 CPUs, conseguiu realizar o docking de aproximadamente
700 ligantes por CPU, ao dia (ZHANG et al., 2008).
O sistema Haddock (DOMINGUEZ; BOELENS; BONVIN, 2003; DE
VRIES; VAN DIJK; BONVIN, 2010) é um exemplo de servidor web para
docking molecular com o auxilio de dados experimentais (knowledge based)
das moléculas. Seu método de docking molecular consiste em minimização de
energia do corpo rígido, com refinamento semi-flexível dos ângulos de torção e
29
um refinamento final com solvente explicito. Possui interfaces voltadas para
cada nível de usuário:
Fácil: Requer apenas as estruturas e a lista dos resíduos do sitio ativo
que interagem com o ligante. Para todos os outros parâmetros utilizados
no procedimento de docking, é definido o valor padrão ou determinado
automaticamente.
Especialista: Permite a personalização de alguns parâmetros, tais como
a definição dos segmentos flexíveis, distâncias entre os átomos, estado
de protonação, dentre outros.
Guru: Nesta interface, além de permitir as mesmas alterações da
interface especialista, também dá acesso a configuração de constantes,
tais como, constantes de força, temperatura e pesos dos termos da
função de pontuação (score).
Todo o processamento é feito no cluster dedicado a este projeto e conta
também com acesso ao ambiente de grid computacional europeu e-NMR (e-
NMR, 2012), caso necessite de mais poder computacional.
Outro exemplo de docking molecular em sistemas distribuídos é o
sistema Mola, desenvolvido para execução de virtual screening em um
pequeno cluster heterogêneo com máquinas não dedicadas. Sua arquitetura
utiliza uma versão personalizada LIVE-CD, não necessitando instalação, do
sistema operacional Linux, o que fornece os recursos para integrar máquinas
com sistemas operacionais e hardware heterogêneos, utilizando os protocolos
LAM-MPI (LAM-MPI, 2012), Local Area Multicomputer MPI, e o MPICH
(MPICH, 2012), MPI CHameleon, ambos baseados no MPI (Message Parsing
Interface), um padrão para comunicação de dados em sistemas distribuídos.
30
Por se tratar de um LIVE-CD, não há qualquer modificação no sistema
operacional original de cada uma das máquinas utilizadas no cluster, e assim,
ao termino da execução, as máquinas voltam ao seu estado original. É
necessário que cada uma das máquinas que integram o cluster possua a
funcionalidade PXE, Preeboot eXecution Everionment, o qual permite a
inicialização do sistema a partir do comando de outra máquina ligada na
mesma rede.
Os programas de docking molecular disponíveis neste sistema são o
AutoDock (GOODSELL; MORRIS; OLSON, 1996) e o AutoDock Vina (TROTT;
OLSON, 2010), ambos desenvolvidos pelo The Scripps Research Institute
(Scripps Research Institute, 2012).
A preparação das moléculas deve ser realizada através do AutoDock
Tools (ADT, 2012), incluso no sistema operacional. No caso do AutoDock, é
necessário preparar os mapas atômicos, etapa realizada através do módulo
AutoGrid. Após a preparação inicial é possível configurar os ajustes (setups) de
docking específicos de cada programa, tais como os parâmetros do algoritmo
genético do programa AutoDock e a variável exhaustiveness, responsável pelo
número de execuções da etapa de refinamento parcial dos cálculos individuais,
no caso do programa AutoDock Vina.
Durante a execução dos cálculos de docking molecular, o sistema Mola
envia, para cada máquina, uma instância de execução do programa AutoDock
para cada CPU. No caso do AutoDock Vina, apenas uma instância é enviada
por máquina, uma vez que este programa é otimizado para utilizar todos os
núcleos de processamento disponíveis em cada máquina. Novas tarefas só são
31
atribuídas apenas quando as execuções nas máquinas finalizam, e assim,
evitando sobrecarregar máquinas mais lentas e mantendo o cluster estável.
Ao utilizar 5 máquinas dual-core, totalizando 10 CPUs, este sistema foi
capaz de realizar o docking de 237 ligantes por dia para o programa AutoDock
e 575 ligantes por dia para o programa AutoDock Vina, em cada CPU.
Portanto, o trabalho de pesquisa apresentado tem o objetivo de propor o
uso do ambiente distribuído através de um grid computacional para acelerar os
cálculos de docking molecular, por meio do desenvolvimento do programa
GriDoMol, programa este capaz de criar e submeter tarefas de docking
molecular utilizando uma interface amigável e intuitiva para o usuário final.
32
3 OBJETIVOS
3.1 Geral
Desenvolvimento e implementação de software para aplicação de grids
computacionais em modelagem para inovação terapêutica.
3.2 Específicos
Desenvolver o programa GriDoMol para gerenciar os cálculos de
docking molecular utilizados em inovação terapêutica.
Contemplar a integração dos programas de docking molecular AutoDock
e AutoDock Vina, amplamente usados no meio acadêmico.
Desenvolver versões para outros sistemas operacionais, como o Linux.
Desenvolver uma interface gráfica de usuário (GUI) amigável e intuitiva,
com o intuito de aumentar a interatividade com o usuário.
Validar o ganho de desempenho obtido ao empregar a plataforma de
grid computacional através da análise de desempenho (“benchmark”).
Tornar o GriDoMol uma plataforma unificada e intuitiva para a execução
prática de cálculos de docking molecular de forma distribuída, em um
ambiente de grid computacional, buscando alto desempenho
computacional.
33
4 METODOLOGIA
4.1 GriDoMol
O programa desenvolvido neste estudo, o GriDoMol, foi desenvolvido na
linguagem de programação C++ utilizando a biblioteca de desenvolvimento QT
(QT, 2012), amplamente utilizada no mundo acadêmico e comercial pelo seu
alto grau de desempenho e portabilidade. O QT é uma biblioteca
multiplataforma e, uma vez codificada a aplicação, ela pode ser recompilada
facilmente nas diversas plataformas que possuem a distribuição do QT. Assim,
foi possível desenvolver versões do GriDoMol para Linux e Windows com
poucas modificações no código fonte.
A interface de desenvolvimento (IDE) utilizada foi o QT Creator, incluso
no kit de desenvolvimento (sdk) do QT (QT, 2012). A escolha desta IDE se
deve ao fato de que a mesma possui versões multiplataformas, facilitando o
desenvolvimento de código fonte nestes sistemas operacionais sem a
necessidade de importar ou modificar os arquivos do projeto em si para se
adequarem a outra IDE.
O compilador utilizado no sistema operacional Windows foi o Mingw
(Mingw, 2013), também disponível no kit de desenvolvimento do QT. No
sistema operacional Linux, utilizou-se o compilador GNU C Compiler (GCC),
que é um compilador para as linguagens de programação C e C++ incluido na
maioria das distribuições Linux existentes no mercado.
Embora boa parte do código utilize as funções próprias da biblioteca de
desenvolvimento QT, houve algumas partes do código fonte que foram
comandos especificos para o sistema operacional. Nestes casos, utilizou-se os
34
recursos de definição “#ifdef Q_OS_WIN” (para Windows) e “#ifdef
Q_OS_LINUX” (para o Linux), para indicar ao compilador qual parte do código
deve ser compilado para determinada plataforma alvo e, assim, tornar o
GriDoMol compilável para estas duas plataformas utilizando um único código
fonte.
Para permitir o acesso aos componentes do OurGrid via linha de
comando no sistema operacional Windows, houve a necessidade de editar o
arquivo de lote (.bat) de cada componente do OurGrid. Houve uma modificação
na parte “(...) org.ourgrid.broker.ui.async.Main” para “(...)
org.ourgrid.broker.ui.sync.Main %1 %2”, no componente Broker, e de “(...)
org.ourgrid.peer.ui.async.Main start (...)” para “(...) org.ourgrid.peer.ui.sync
.Main %1 %2 (...)”, no componente Peer. O comando “start /b javaw” foi
substituído por apenas “java” no inicio de cada um destes arquivo de lote.
Estas modificações foram necessárias para tornar o OurGrid executável em
linha de comando.
Para realizar a comunicação entre os componentes do ambiente de grid
computacional denominado OurGrid, é necessário utilizar o protocolo XMPP.
Este protocolo detecta a presença dos componentes do OurGrid nas máquinas
e possibilita a troca de mensagens entre eles. O servidor XMPP utilizado neste
trabalho foi o OpenFire 3.7.0 (OpenFire, 2012), por se tratar do servidor
certificado e recomendado, durante o inicio deste estudo, pela equipe do
OurGrid. Atualmente, o servidor XMPP recomendado para as versões mais
recentes do OurGrid é o ejabberd (ejabberd, 2012).
35
A plataforma de grid computacional escolhida para formar o ambiente
distribuído necessário na execução das aplicações paralelas neste projeto foi o
OurGrid 4.2.3 (ANDRADE et al., 2003), por ser adequado para aplicações do
tipo BoT (Bag-of-Tasks), ou seja, aquelas onde as tarefas têm independência
temporal e lógica entre si, além de ser utilizado por outras iniciativas de
computação distribuída e de possuir uma ampla gama de aplicabilidade
(MATTOS et al., 2008; ARAUJO et al., 2005).
A escolha do programa AutoDock (GOODSELL; MORRIS; OLSON,
1996; MORRIS et al., 2009) como um dos programas para a realização de
docking molecular se deve ao fato dele ser amplamente empregado no meio
acadêmico, sendo o programa de docking molecular mais citado até janeiro de
2011. Seu artigo principal foi citado mais de 2700 vezes (AutoDock, 2012). O
programa AutoDock possui uma boa correlação entre os resultados previstos
no docking e os experimentais.
O programa AutoDock Vina (TROTT; OLSON, 2010) também foi
escolhido por ser um programa ainda mais prático e rápido do que o AutoDock.
Neste caso (AutoDock Vina), não há a necessidade de que o usuário realize o
cálculo das energias de interação no modulo AutoGrid, tornando o cálculo de
docking molecular mais automático, principalmente para usuários menos
experientes, uma vez que, este programa, necessita apenas das estruturas das
moléculas que serão utilizadas (ligante e alvo), e as coordenadas e dimensões
do sítio ativo. Outro motivo para a escolha do programa AutoDock Vina foi a
sua capacidade interna, já implementada, de utilizar os diversos núcleos de
processamento da máquina em seu algoritmo genético, dividindo o espaço de
36
busca de soluções entre os núcleos existentes para acelerar a realização do
docking molecular. Desta forma, o AutoDock Vina é mais rápido comparado
com outras soluções de docking, inclusive o próprio AutoDock.
4.2 Testes de desempenho computacional (“performance”)
Para a realização dos testes de desempenho, utilizou-se a infraestrutura
de um grid computacional montado no Laboratório de Química Teórica
Medicinal (LQTM). A máquina front-end, responsável direta por executar
efetivamente o programa GriDoMol para submeter os jobs para as demais
maquinas do ambiente de grid computacional, utiliza o processador Intel dual
core Xeon 2.80 GHz contendo 2GB de memoria RAM e executa o sistema
operacional Windows. As tasks (cálculos individuais de docking) foram
executadas em paralelo no ambiente de grid computacional homogêneo
(contendo oito máquinas), no qual cada máquina (contendo o componente
worker do OurGrid) possui dois processadores Intel Xeon e5410 quad core
2.33 GHz, com 16GB de memória RAM executando o sistema operacional
Linux Ubuntu 10.10. Todas as máquinas e o switch se comunicaram utilizando
interfaces de rede gigabit (1000Mb/s).
As análises quantitativas de tempo de processamento, por exemplo,
foram medidas com precisão em uma thread (um processamento contínuo
separado do programa principal) dedicada do programa GriDoMol. Esta thread
tem a função de analisar os arquivos recebidos por meio das máquinas
integrantes do grid computacional para o computador principal que está
37
executando o programa GriDoMol e, desta forma, controlar quais cálculos de
docking molecular foram finalizados ao receber seus respectivos resultados.
Para melhor observar o ganho de desempenho nos diferentes níveis de
paralelização dos cálculos realizados, definiram-se três principais métricas de
desempenho computacional. Estas métricas foram o Fator de divisão por Cores
(FdC), Fator de divisão por Instancias de execução (FdI) e o Fator de divisão
por Máquinas (FdM).
O fator de divisão por cores (FdC) é o coeficiente que determina o ganho
de desempenho adquirido, ao utilizar o nível de distribuição multicore, ou seja,
nos diversos núcleos de processamento das máquinas. Seu valor é
determinado pela divisão do tempo necessário para a realização dos cálculos
de docking molecular em máquinas que utilizem apenas um núcleo de
processamento, pelo tempo do mesmo número de máquinas com mais de um
núcleo de processamento sendo utilizado. Sua fórmula pode ser encontrada na
Equação 1.
FdC = T(MxC1)/T(MxCy) (1)
Nesta fórmula, o termo T(MxC1) é o tempo total gasto por “x” máquinas
que utilizem apenas um núcleo de processamento, enquanto o termo T(MxCy)
é o tempo total gasto pelas mesmas “x” máquinas, mas, desta vez, utilizando
“y” núcleos, para realizar a mesma tarefa. Por exemplo, o FdC previsto de um
cálculo que utiliza quatro máquinas e todos os oito núcleos de processamento
(cada) deveria ser igual a 8 (oito), uma vez que tende a ser idealmente 8 (oito)
vezes mais rápido do que o cálculo utilizando quatro máquinas onde apenas
38
um dos oito núcleos de processamento, em cada, está sendo utilizado. Esta
métrica é utilizada apenas no caso do programa AutoDock Vina, uma vez que,
através do parâmetro “cpu = y”, pode-se determinar quantos núcleos de
processamento serão utilizados nos cálculos de docking molecular com este
programa. É importante ressaltar que este recurso multicore do programa
AutoDock Vina é uma opção interna deste programa, tendo sido implementada
por seu desenvolvedor original. Sendo assim, o ganho de desempenho
proveniente deste paralelismo multicore não é o foco central deste trabalho de
mestrado, que enfatiza primariamente o ganho de desempenho devido à
paralelização das tarefas em um ambiente de grid computacional.
No programa AutoDock, usou-se a estratégia de enviar múltiplas
instâncias de execução deste programa para cada máquina, na tentativa de
utilizar a disponibilidade de núcleos de processamento ociosos para a
realização paralela dos cálculos individuais de docking molecular. Tal
abordagem está relacionada ao fato de que, diferentemente do programa
AutoDock Vina, o programa AutoDock não tem suporte a execução de forma
paralela entre os núcleos de processamento, sendo esta uma característica
interna, proveniente da sua implementação original, por parte dos autores e
desenvolvedores do mesmo. Uma vez que não há como controlar o fato de que
os cálculos de docking molecular simultâneos com o programa AutoDock,
realizados na mesma máquina, irão sempre ser distribuídos de forma
homogênea entre os núcleos de processamento, optou-se por utilizar uma
métrica diferente do FdC para medir este ganho de desempenho. Para medir,
portanto, o ganho de desempenho ao aumentar o número de instâncias, ou
39
seja, o número de cópias sendo executadas em paralelo na mesma máquina,
criou-se o conceito de Fator de divisão por Instancias de execução (FdI). A
fórmula desta métrica, FdI, é idêntica ao FdC e esta nomenclatura diferenciada
tem como objetivo diferenciá-lo do FdC, onde neste último, temos a segurança
de determinar (com o comando “cpu = y”), quantos núcleos estarão sendo
utilizados nos cálculos, em cada máquina utilizada no ambiente de grid
computacional.
O Fator de divisão por Máquinas (FdM) busca quantificar o ganho de
performance obtido na arquitetura distribuída do grid computacional. É
calculado segundo a Equação 2.
FdM = T(M1Cx)/T(MyCx) (2)
O termo T(M1Cx) indica o tempo total gasto por uma máquina utilizando
“x” núcleos de processamento, e o termo T(MyCx) é o tempo total gasto, para
executar a mesma tarefa, usando-se “y” máquinas e os mesmos “x” núcleos de
processamento do termo anterior. Utilizando exemplo parecido para ilustrar o
conceito de FdC, o FdM previsto, ao utilizar quatro máquinas e oito núcleos de
processamento cada, deveria, em tese, ser igual a 4 (quatro), uma vez que é
previsto que seja 4 (quatro) vezes mais rápido quando comparado com o
cálculo utilizando apenas uma máquina com os mesmos oito núcleos de
processamento, no caso do escalonamento de performance no grid ser
observado como essencialmente linear.
O conjunto de moléculas escolhido para os testes já está bem
estabelecido na literatura e já foi utilizado pelo grupo de quimiogenômica
40
estrutural da universidade de Estrasburgo (KELLENBERGER et al., 2004), em
um estudo comparativo. Um conjunto de 50 (cinquenta) receptores e seus
respectivos ligantes foi selecionado para a realização de re-docking (ver Tabela
2). O re-docking acontece quando se retira o ligante que está co-cristalizado
junto com o seu respectivo alvo biológico, e o programa de docking molecular
tenta reinserí-lo na macromolécula. Esta abordagem é muito utilizada para fins
de avaliação da capacidade preditiva dos programas de docking molecular.
Para obter um volume maior de demanda computacional e possibilitar melhores
comparações de desempenho, cada task (cálculo individual de docking
molecular em um complexo ligante+receptor) foi repetida 10 (dez) vezes,
totalizando um job contendo 500 (50 complexos x 10 cópias cada) tarefas
(tasks).
A preparação das moléculas, como a retirada das moléculas de água,
adição dos átomos de hidrogênio faltantes e adição das cargas dos átomos, foi
realizada através do uso da ferramenta computacional AutoDock Tools (ADT,
2012). Os arquivos grid parameter file (gpf) e docking parameter file (dpf),
utilizados pelo AutoGrid e pelo AutoDock, respectivamente, foram gerados
automaticamente através dos scripts disponibilizados pelo pacote AutoDock
Tools. Esta etapa inicial de preparação das moléculas é obrigatória para a
realização dos cálculos de docking molecular nos programas AutoDock e
AutoDock Vina.
Além dos parâmetros padrões necessários para a realização dos
cálculos de docking em si, outros parâmetros foram utilizados para melhorar os
resultados obtidos, e também para tentar padronizar o tempo que cada task
41
(cálculo individual de docking) é realizada e, assim, viabilizar a reprodução dos
testes de desempenho.
Tabela 2 – Lista do conjunto de complexos ligante-receptor selecionados para este estudo.
*N = Número de ligações com rotação livre. MW = Massa Molar do ligante, em g/mol. R = Resolução, em
Ångstrons. ID = identidade do respectivo código PDB.
# ID R RECEPTOR LIGAND MW N 1 1abe 1.7 L-Arabinose-Binding Protein L-Arabinose 150.1 4 2 1acj 2.8 Acetylcholinesterase Tacrine 198.3 1 3 1acm 2.8 Aspartate Carbamoyltransferase N-Phosphonacetyl-L-Aspartate 251.1 6 4 1aha 2.2 alpha-Momorcharin Adenine 135.1 1 5 1baf 2.9 Anti-dinitrophenyl-spin-label monoclonal
antibody Fab fragment 1-Hydroxy-2,2,6,6,-Tetramethyl-4-(2-4,Dinitro-
5-(Methyl-Aminoethyl-Amino)Phenylamino)PIPERIDINE
396.5 12
6 1cbs 1.8 Cellular Retinoic-Acid-Binding Protein Type II
Retinoic Acid 299.4 10
7 1com 2.2 Chorismate Mutase Prephenate 224.2 5 8 1dbb 2.7 Fab' Fragment Of The Db3 Anti-Steroid
Monoclonal Antibody Progesterone 314.5 4
9 1eap 2.5 Catalytic Antibody 17E8 Phenyl [1-(1-N-Succinylamino)Pentyl] Phosphonate
341.3 11
10 1eed 2.0 Endothiapepsin Cyclohexyl Renin Inhibitor Pd125754 299.4 10 11 1fki 2.2 Fk506 Binding Protein Rotamase Inhibitor (21S)-1-Aza-4,4-Dimethyl-
6,19-Dioxa-2,3,7,20-Tetraoxobicyclo Pentacosane
437.6 1
12 1hri 3.0 Human Rhinovirus 14 1-[6-(2-Chloro-4-Methyxyphenoxy)-Hexyl]-Imidazole
308.8 10
13 1hsl 1.8 Histidine-Binding Protein L-Histidine 155.2 4 14 1igj 2.5 Fab (Igg2A, kappa) Digoxin 520.7 10 15 1ive 2.4 Influenza A Subtype N2 Neuraminidase 4-(Acetylamino)-3-Aminobenzoic Acid 193.2 4 16 1lah 2.0 Lysine, Arginine, Ornithine-Binding Protein Ornithine 133.2 6 17 1lst 1.8 Lysine-, Arginine-, Ornithine-Binding Protein Lysine 146.2 7 18 1mcr 2.7 Immunoglobulin delta Light Chain Dimer N-Acetyl-L-His-D-Pro-Oh 293.3 6 19 1mrg 1.8 alpha-Momorcharin Adenine 135.1 1 20 1mrk 1.6 alpha-Trichosanthin Formycin 267.3 6 21 1mup 2.4 Major Urinary Protein Complex 2-(Sec-Butyl) Thiazoline 143.3 4 22 1rob 1.6 Ribonuclease A Cytidylic Acid 321.2 5 23 1snc 1.6 Staphylococcal Nuclease 3-Prime,5-Prime-Deoxythymidine
Bisphosphate 398.2 3
24 1srj 1.8 Streptavidin Naphthyl-Haba 291.3 4 25 1stp 2.6 Streptavidin Biotin 243.3 3 26 1tdb 2.6 Thymidylate Synthase 5-Fluoro-2'-Deoxyuridine-5'-Monophosphate 324.2 0 27 1tng 1.8 Trypsin Aminomethylcyclohexane 114.2 2 28 1tnl 1.9 Trypsin Tranylcypromine 133.2 2 29 1tph 1.8 Triosephosphate Isomerase Phosphoglycolohydroxamate 169.0 4 30 1tpp 1.4 beta-Trypsin P-Amidino-Phenyl-Pyruvate 206.2 6 31 1ukz 1.9 Uridylate Kinase Adenosine-5'-Diphosphate 345.2 6 32 1ulb 2.7 Purine Nucleoside Phosphorylase Guanine 151.1 1
33 2ack 2.4 Acetylcholinesterase Edrophonium 166.3 6 34 2ak3 1.8 Adenylate Kinase Isoenzyme-3 Adenosine Monophosphate 345.2 7
35 2cgr 2.2 Igg2B (kappa) Fab Fragment Antigen N-(P-Cyanophenyl)-N'-(Diphenylemethyl)Guanidineacetic Acid
383.4 7
36 2cht 2.2 Chorismate Mutase Endo-Oxabicyclic Inhibitor 226.2 3 37 2cmd 1.8 Malate Dehydrogenase Citric Acid 189.1 6 38 2dbl 2.9 Fab' Fragment Of Monoclonal Antibody Db3 5-alpha-Pregnane-3-beta-Ol-Hemisuccinate 417.6 9 39 2gbp 1.9 D-Galactose D-Glucose Binding Protein Glucose 180.2 6 40 2r07 3.0 Rhinovirus 14 Antiviral Agent WIN VII 314.4 9 41 2sim 1.6 Sialidase 2-Deoxy-2,3-Dehydro-N-Acetyl-Neuramic 290.3 10 42 3hvt 2.9 Reverse Transcriptase Dipyridodiazepinone Nevirapine 266.3 1 43 3ptb 1.7 beta-Trypsin Benzyldiamine 121.2 1 44 3tpi 1.9 Trypsinogen Pancreatic Trypsin Inhibitor 230.3 11 45 4cts 2.9 Citrate Synthase Oxaloacetate ion 130.1 3 46 4fab 2.7 4-4-20 (IgG2A) Fab Fragment - Fluorescein
(Dianion) Complex 2-methyl-2,4-pentanediol 411.2 4
47 6abp 1.6 L-Arabinose-Binding Protein L-Arabinose 148.1 4 48 7tim 1.9 Triosephosphate Isomerase Phosphoglycolohydroxamate 169.0 4 49 8atc 2.5 Aspartate Carbamoyltransferase N-Phosphonacetyl-L-Aspartate 251.1 6 50 8gch 1.6 gamma-Chymotrypsin Gly-Ala-Trp 332.4 9
42
4.2.1 Programa AutoDock
No programa AutoDock, pelo fato de sua busca ser tipicamente robusta
o suficiente, apenas o parâmetro seed (semente inicial para o gerador de
números aleatórios) foi ajustado com um valor fixo (número = 495829104), a
fim de permitir a reprodutibilidade dos procedimentos de cálculo. Este valor foi
atribuído arbitrariamente, utilizando um dos valores gerados automaticamente
em uma execução a priori da realização dos testes. Para compensar a falta de
paralelismo a nível multicore para o programa AutoDock, decidiu-se escalonar
a utilização dos núcleos de processamento através do envio de mais de uma
instância de execução do programa AutoDock em cada máquina, quando
pertinente.
Devido aos mapas gerados pelo programa AutoGrid serem grandes, em
termos de espaço ocupado em disco, usou-se a estratégia de comprimir os
mapas em um arquivo (formato zip) antes de enviar os resultados para a
máquina front-end e, desta forma, reduzir o tempo de transferência de
arquivos.
Tanto para o AutoGrid, quanto para o AutoDock, foi necessária a
criação de rotinas computacionais (scripts), para permitir a compressão,
extração (no caso do AutoDock) dos mapas atômicos e para efetuar a
execução paralela (nos casos onde mais de uma instância de cálculo com o
programa AutoDock é enviado para a mesma máquina) como meio de driblar a
limitação apresentada pelo OurGrid, que limita cada tarefa (task) a uma única
linha de comando de execução.
43
Vale ressaltar que, como cada tarefa contendo cálculos em paralelo do
programa AutoDock é contada como uma única tarefa pelo ambiente de grid
computacional OurGrid, a tarefa, em cada máquina, só será concluída quando
todas as execuções distribuídas nas múltiplas instâncias do programa
AutoDock finalizarem.
4.2.2 Programa AutoDock Vina
No AutoDock Vina, o valor do parâmetro exhaustiveness, responsável
por indicar o tempo gasto em buscas por um mínimo global em cada cálculo de
docking, foi configurado para o valor igual a 16 (dezesseis), que representa o
dobro do valor padrão (oito). Também foi modificado o valor do parâmetro
seed, que indica a semente inicial para o gerador de números aleatórios, por
onde o algoritmo genético começa sua busca, tornando-o fixo (número =
495829104) ao invés de aleatório. Este valor foi atribuído arbitrariamente,
utilizando um dos valores gerados automaticamente em uma execução a priori
da realização dos testes. Assim, tentou-se padronizar o processo de execução
de cada cálculo de docking, com o intuito de tornar o procedimento
reprodutível, uma vez que o algoritmo irá sempre começar pelo mesmo lugar.
Durante os testes, para determinar o impacto da quantidade de
máquinas no desempenho do grid computacional, foi alternada a quantidade de
computadores envolvidos no dimensionamento do grid computacional, variando
entre 1 e 8 máquinas em funcionamento para o AutoDock Vina. O
escalonamento das máquinas para o AutoDock variou entre 1 e 6,
sistematicamente.
44
Também houve variação no número de núcleos de processamento
utilizados para determinar o impacto multicore, no caso do programa AutoDock
vina, e de múltiplas execuções ou instâncias paralelas, no caso do AutoDock.
Como o foco deste trabalho é a paralelização em grid computacional, ou seja, a
distribuição dos cálculos em grande número de máquinas, e para abreviar a
quantidade de cálculos, a progressão para o número de núcleos de
processamento (cores) utilizados foi feita de forma geométrica, variando-se em
1, 2, 4 e 8 núcleos de processamento.
45
5 RESULTADOS E DISCUSSÕES
5.1 O programa GriDoMol
O programa GriDoMol, desenvolvido neste trabalho, fornece uma
interface simples e intuitiva, em conjunto com funcionalidades que permitem
criar, enviar e gerenciar cálculos de docking molecular em grande escala, no
ambiente distribuído de um grid computacional. A descrição quantitativa do
código fonte desenvolvido durante a realização deste trabalho pode ser
encontrada na Tabela 3. Para obter estes custos estimados usou-se o
programa SLOCCount (SLOCCount, 2012). Este programa tem sido utilizado
para uma avaliação mais quantitativa do esforço e custo estimados no
desenvolvimento de diversos softwares, inclusive, recentemente, aplicado a
análise do núcleo (Kernel) do sistema operacional Linux (The Linux Kernel: It’s
Worth more!, 2012). As estimativas realizadas pelo programa SLOCCount leva
em consideração o modelo Construtive Cost Model (COCOMO). Uma
descrição detalhada do modelo COCOMO e como ele é utilizado pelo
programa SLOCCount em suas estimativas pode ser encontrado no guia do
usuário (SLOCCount User’s Guide, 2013). Vale ressaltar que um dos
resultados provenientes da análise do código GriDoMol, feito pelo SLOCCount,
foi o “esforço estimado para desenvolvimento" (“Development Effort Estimate”),
com um valor de 0,58 pessoas/ano, o que significa praticamente 1 (uma)
pessoa em 2 (dois) anos, que coincide basicamente com o período (de dois
anos) do projeto de mestrado.
46
Tabela 3 – Características do código fonte implementado no programa GriDoMol obtido a partir
do programa SLOCCount (SLOCCount, 2012).
Número de desenvolvedores
(estimado)
Esforço estimado para
desenvolvimento (pessoas/ano)
Linhas de
Código
1,33 0,58 2.756
Com o intuito de apresentar as informações importantes para
acompanhar o andamento das tarefas executadas no ambiente de grid
computacional, a estrutura da tela principal (Figura 5.1) conta com os seguintes
campos: Info, Workers e as abas do Broker e do Peer.
No campo Info, informações gerais sobre o andamento das tarefas são
apresentadas, tal como a data e hora do inicio e fim do cálculo e a
porcentagem dos cálculos já concluídos.
Os detalhes específicos sobre cada tarefa agendada para execução no
ambiente de grid computacional são exibidos em uma tabela presente no
campo Workers. Esta tabela conta com as colunas task, worker, status e start
time.
A coluna task mostra o nome das moléculas envolvidas em cada cálculo
de docking molecular, utilizando para tal nomenclatura o formato “receptor-
ligante”. Na coluna worker, é exibido o nome da máquina responsável pelo
processamento do cálculo em questão. O status indica o estado em que cada
tarefa se encontra, dentre eles: não iniciado (unstarted), em execução
(running), encontrou uma falha (failed) e concluído (finished). Por último, a
coluna start time mostra o horário no qual houve o inicio de cada cálculo.
47
Figura 5.1 – Tela inicial do GriDoMol, sendo executado no sistema operacional Windows.
As abas Broker e Peer registram as atividades de cada um desses
componentes, exibindo informações de avisos, como por exemplo, o número
de máquinas disponíveis, as mensagens de erro e outras mensagens de
comunicação de cada um destes componentes do sistema.
A interface para a preparação (ver Figura 5.2) dos arquivos necessários
para os cálculos de docking no ambiente distribuído é acessada através da
opção new job, disponível no menu file da interface principal. Nesta tela, é
solicitado o preenchimento dos dados de entrada, de acordo com os campos
General Information, Ligand Information, Receptor Information e Molecules List,
de forma que:
48
Figura 5.2 – Tela do GriDoMol para criação do job no Windows.
• General Information: Este campo especifica o nome do job (label) e qual
programa de docking molecular (docking engine) será utilizado nos cálculos de
docking, dentre as opções de usar o programa AutoDock ou o AutoDock Vina.
• Ligand Information: É responsável pela adição das moléculas ligantes. O
botão browse seleciona um ligante, já no formato PDBQT. Ao confirmar o
49
ligante, o botão add ligand serve para adicioná-lo ao campo molecules list, o
qual lista todas as moléculas escolhidas para os cálculos.
• Receptor Information: Adiciona os receptores de maneira análoga ao
processo de seleção dos ligantes. Além de informar o arquivo PDBQT do
receptor, é necessário preencher as coordenadas tridimensionais (x, y e z) do
centro de seu sitio ativo e a área de busca a partir do centro do sitio ativo,
sendo que estas informações podem ser obtidas através do uso de programas
com interface gráfica de visualização do alvo biológico, como por exemplo, o
AutoDock Tools, que é totalmente compatível com o pacote de programas do
AutoDock e AutoDock Vina.
• Molecules List: A lista de moléculas que farão parte do cálculo de
docking (ou virtual screening) é apresentada neste campo. Há a opção de
remover os receptores e ligantes indesejáveis através dos botões remove
selected receptor ou remove selected ligand, respectivamente. Ainda nesta
etapa, é determinado o tipo de cálculo de docking que será realizado, podendo-
se escolher entre os cálculos de docking N-N ou os cálculos de docking 1-1. Na
modalidade docking N-N, o docking de todos os ligantes será realizado com
todos os receptores, no que costuma ser chamado de cross-docking. Já na
modalidade docking 1-1, cada receptor estará envolvido apenas no cálculo com
o ligante que estiver na mesma sequência (numeração linear) da lista.
Com o intuito de facilitar uma futura reutilização e alteração do conjunto
de moléculas selecionadas para os cálculos e seus parâmetros, foram
adicionadas ao GriDoMol as funcionalidade de salvar e carregar parâmetros de
50
cálculos de docking, através dos botões save GriDoMol docking parameters e
load GriDoMol docking parameters, respectivamente. Ao se carregar o
GriDoMol setup file (gsf), é possível realizar alterações de dados como:
adicionar e/ou remover moléculas, modificar as coordenadas da localização do
sitio ativo, o tamanho da área de busca em torno do sitio ativo, e re-selecionar
o programa de docking que irá realizar o cálculo.
Após a adição dos dados necessários, a função generate job definition
file cria o arquivo job description file (jdf) necessário para a realização do
cálculo de docking no ambiente de grid computacional. O job description file,
para a execução do módulo AutoGrid, responsável por gerar os mapas
atômicos de cada receptor utilizado no cálculo de docking com o programa
AutoDock, é criado, automaticamente, junto com o arquivo jdf do módulo
AutoDock, quando o dock engine selecionado é o AutoDock.
A Figura 5.3 mostra o esquema de comunicação entre o programa
GriDoMol e os demais programas utilizados neste trabalho. O Fluxo de
execução começa pela preparação inicial das moléculas que serão utilizadas,
como, por exemplo, adicionar átomos de hidrogênio, remover as moléculas de
água e converter os arquivos contendo as estruturas moleculares para o
formato PDBQT. Após esta preparação inicial, o usuário pode, através do
GriDoMol: i) Configurar o grupo de máquinas que farão parte do ambiente de
grid computacional, utilizando o arquivo Site Description File (SDF) do
componente Peer; ii) Criar ou carregar os aqruivos GriDoMol Setup File (GSF)
contendo as informações sobre as moléculas que serão utilizadas; iii) Criar o
arquivo Job Description File (JDF), utilizado para realizar os cálculos de
51
docking molecular de forma distribuída, e submete-lo para o componente
Broker.
Após enviar o job (conjunto de cálculos de docking molecular) para o
component Broker, o mesmo se encarrega de distribuir as tasks (cálculo
individual de docking) de forma otimizada entre os componentes Worker
presente em cada máquina encarregada de realizar cálculos de docking no
ambiente de grid computacional. O componente Peer analisa a disponibilidade
das máquinas em tempo real, e informa o componente Broker caso alguma
máquina fique indisponível. Cada máquina que executa o componente Worker
realiza cálculos de docking utilizando os programas AutoDock e AutoDock
Vina. Quando o cálculo de docking termina, os resultados são enviados para a
máquina do usuário.
Para determinar o poder computacional do ambitente de grid
computacional, controlado pelo GriDoMol, em FLOPS (operações de ponto
flutuante por segundo) utilizou-se neste estudo a ferramenta Linpack (Linpack,
2013). A ferramenta Linpack é muito utilizada para determinar o poder
computacional, incluindo testes de desempenho de supercomputadores (Top
500 Supercomputers, 2012). O resultado obtido para uma das máquinas
usadas neste trabalho, em nosso laboratório, foi de 56,8 GFLOPS (109 FLOPS)
e, como as máquinas que compõe o ambiente de grid computacional deste
presente trabalho são homogêneas, o poder computacional estimado de todo o
ambiente grid é aproximadamente 454,2 GFLOPS.
52
Fig
ura
5.3
- Esq
ue
ma
da
arq
uite
tura
de
co
mun
icaçã
o e
ntre
os s
oftw
are
s d
e c
ad
a m
áq
uin
a u
tiliza
do
s n
este
trab
alh
o.
53
5.2 Resultados dos cálculos de docking
O total de cálculos realizados pode ser observado na tabela 4. Além dos
testes de desempenho realizados utilizando os programas AutoDock e
AutoDock Vina, também realizou-se testes adicionais para investigar alguns
comportamentos observados no ambiente de grid computacional. Os testes de
ordenamento dos cálculos de docking dentro de um job foram realizados para
tentar determinar se a ordem em que os cálculos de docking são realizados
influência o tempo total de execução do job no ambiente de grid computacional.
Já os testes de trasferência de arquivos foram realizados para tentar
determinar o impacto da etapa de transferência de arquivos no tempo total do
job.
Tabela 4 – Total de cálculos realizados.
Teste jobs Cálculos individuais
AutoDock 24 12.000
AutoDock Vina
32 16.000
Testes de ordenamento
40 20.000
Testes de transferência
8 4.000
Total 104 52.000
Antes do inicio de cada cálculo de docking, observou-se um atraso
(delay) típico de aproximadamente 10 segundos entre o comando de envio de
cada cálculo (task) na interface do programa GriDoMol, e a realização efetiva
54
do mesmo na máquina de trabalho (worker). Este delay é típico da arquitetura
de grid computacional e se deve normalmente as comunicações entre os
componentes do grid computacional. Estas comunicações incluem verificações
de disponibilidade de máquinas, ou seja, se elas ainda estão ligadas e
conectadas ao ambiente de grid computacional, e verificação da presença dos
requisitos mínimos necessários para a realização da tarefa, na máquina
escolhida pelo grid computacional.
Vale ressaltar que, devido às comunicações e transferência de arquivos
no ambiente de grid computacional, os cálculos com apenas uma máquina são
mais lentos do que se fossem realizados fora do ambiente de grid
computacional. Utilizando, por exemplo, rotinas computacionais como shell
scripts ou arquivos de lote (batch), é possível realizar estes cálculos que
utilizam apenas uma máquina numa fração do tempo realizado no ambiente de
grid computacional. Contudo, como o propósito central do ambiente de grid
computacional é a utilização de processamento distribuído em varias
máquinas, esta situação de execução em apenas uma máquina é bastante
improvável. Em adição, vale ressaltar que mesmo que o tempo de execução do
job (conjunto de cálculos) no grid computacional operando com apenas 1 (uma)
máquina fosse inferior à utilização de shell scripts ou arquivos de lote para
executar todas estas tarefas (cálculos individuais de docking) apenas nesta
máquina, ainda assim a interface gráfica do GriDoMol e o gerenciamento
sequencial das tarefas individuais facilitaria bastante o processo de cálculo,
sem a necessidade de nenhum recurso adicional (shell scripts ou arquivos de
lote).
55
5.2.1 Resultados do AutoDock
Como mencionado no capítulo 4 (metodologia) os cálculos com o
programa AutoDock foram realizados com seis máquinas contendo oito núcleos
de processamento, cada. Embora o programa AutoDock não possua recursos
de paralelização de cada cálculo a nível de núcleos de processamento, utilizou-
se a estratégia de enviar mais de uma instância de execução do programa
AutoDock por máquina, para se obter este efeito de processamento em
paralelo no âmbito de cada computador, tipicamente através da utilização de
núcleos de processamento ociosos nos mesmos. Pode-se observar os
resultados de desempenho computacional do programa AutoDock na Tabela 5,
em função do aumento do número de máquinas ou de instâncias de execução
do programa em cada máquina do grid computacional.
Tabela 5 - Desempenho computacional comparativo do GriDoMol durante a realização dos
cálculos com o AutoDock.
# Máquinas # Instâncias Tempo observado (s)
FdI observado
FdI previsto
FdM observado
FdM previsto
Tempo previsto (s)
1 1 180063 - - - - 180063,00 1 2 101405 1,78 2,00 - - 90031,50 1 4 67056 2,69 4,00 - - 45015,75 1 8 50491 3,57 8,00 - - 22507,88 2 1 86312 - - 2,09 2,00 90031,50 2 2 50135 1,72 2,00 2,02 2,00 43156,00 2 4 36037 2,40 4,00 1,86 2,00 21578,00 2 8 25421 3,40 8,00 1,99 2,00 10789,00 3 1 55584 - - 3,24 3,00 60021,00 3 2 34971 1,59 2,00 2,90 3,00 27792,00 3 4 21831 2,55 4,00 3,07 3,00 13896,00 3 8 13318 4,17 8,00 3,79 3,00 6948,00 4 1 41976 - - 4,29 4,00 45015,75 4 2 27946 1,50 2,00 3,63 4,00 20988,00 4 4 14944 2,81 4,00 4,49 4,00 10494,00 4 8 11177 3,76 8,00 4,52 4,00 5247,00 5 1 32739 - - 5,50 5,00 36012,60 5 2 19025 1,72 2,00 5,33 5,00 16369,50 5 4 11822 2,77 4,00 5,67 5,00 8184,75 5 8 6542 5,00 8,00 7,72 5,00 4092,38 6 1 28965 - - 6,22 6,00 30010,50 6 2 16611 1,74 2,00 6,10 6,00 14482,50 6 4 9528 3,04 4,00 7,04 6,00 7241,25 6 8 5338 5,43 8,00 9,46 6,00 3620,63
56
Figura 5.4 - Gráfico de desempenho do AutoDock em função do tempo. As curvas com a
legenda no formato Ex (onde x se refere ao número de núcleos de processamento utilizados)
se refere aos valores observados enquanto as curvas no formato Exp representam os valores
previstos.
Nota-se que, ao aumentar o número de máquinas envolvidas na
execução dos cálculos de docking, o tempo de execução dos 500 cálculos de
docking se aproxima do tempo previsto (Figura 5.4). Isto deve ocorrer devido
ao aumento do número de transferências simultâneas de arquivos, observadas
ao se utilizar mais máquinas nos cálculos de docking no ambiente de grid
computacional. Estas transferências simultâneas reduzem o tempo total gasto
com transferências, e consequentemente o tempo total de execução. Por
exemplo, ao utilizar apenas uma máquina, as transferências são,
obrigatoriamente, sequenciais enquanto que, ao utilizar mais de uma máquina,
57
ocorre a paralelização fortuita destas transferências de forma que isto aumenta
o desempenho computacional dos cálculos do conjunto de moléculas como um
todo. Como o tamanho médio dos arquivos transferidos para a realização dos
cálculos no Autodock, em média, está entre 1MB a 3MB (já comprimido no
formato zip), este efeito se torna significativo para este programa, porém
desprezível para o Autodock Vina, onde o tamanho dos arquivos transferidos é
bem menor (entre 0.1MB e 0.7MB, tipicamente).
Como se pode notar no gráfico do FdI observado durante a utilização do
programa AutoDock (Figura 5.5), o desempenho ao aumentar o número de
instâncias de execução do programa AutoDock ficou aquém do previsto. Como
visto anteriormente, cada tarefa contendo cálculos em paralelo do AutoDock é
contada como uma única tarefa pelo ambiente de grid computacional. O tempo
total de execução de cada um destes pequenos conjuntos de instâncias do
programa que é executado em cada máquina é sempre o tempo que o cálculo
mais demorado deste conjunto leva para ser concluído. Nesta situação, onde
todas as instâncias paralelas de execução do cálculo já terminaram, restando
apenas uma executando em apenas um núcleo, deve haver um grande número
de núcleos de processamento ociosos, esperando o último cálculo do conjunto
ser concluído no último núcleo ativo (não ocioso) de cada máquina. Esta
ociosidade dos núcleos de processamento compromete o tempo total de
execução, uma vez que estes núcleos ociosos poderiam estar realizando os
cálculos que ainda precisam ser feitos na lista de tasks do job (lista completa
de cálculos de docking a ser realizados). Este problema não pode ser
58
contornado, uma vez que, para o OurGrid, cada tarefa contendo multiplas
instâncias de execução é vista como uma única tarefa.
Figura 5.5 - Gráfico do FdI para o programa AutoDock. As legenda no formato Mx (onde x se
refere ao número de máquinas utilizadas) mostra os valores observados em relação ao
previsto.
Vale ressaltar que o baixo desempenho observado no FdI,
especialmente nos casos com oito instâncias de execução, pode ter sido
causado pela sobrecarga de demanda computacional na máquina, deixando
pouco processamento para as atividades essenciais de gerenciamento do
sistema operacional da máquina. Além disto, parte deste baixo desempenho se
deve ao fato de que o programa AutoDock não foi desenvolvido para ser
executado em múltiplas instâncias de execução e algumas operações deste
59
programa, como, por exemplo, o excesso de escrita em disco, observado em
maior escala no estudo do Dovis (JIANG et al., 2008), apresentado na seção
2.4 deste trabalho, pode ter contribuído para o baixo valor de FdI observado em
relação ao esperado (Tabela 5).
Figura 5.6 – Gráfico do FdM para o programa AutoDock. As legenda no formato Ex (onde x se
refere ao número de instâncias de execução utilizadas) mostra os valores observados em
relação ao previsto.
O aumento de desempenho no programa AutoDock no ambiente de grid
computacional, conforme pode-se observar no gráfico a Figura 5.6, fica
próximo do previsto. Por conta do tamanho e quantidade de arquivos enviados
para a realização de cálculos de docking no programa AutoDock, a etapa de
60
transferência de arquivos é mais longa. Este efeito torna o cálculo base com
apenas uma máquina, muito mais demorado. Ao aumentar o número de
máquinas, além do ganho de desempenho através da distribuição de
processamento computacional dos cálculos de docking entre as máquinas do
ambiente de grid computacional, as transferências de dados aceleraram ainda
mais o desempenho, uma vez que o tamanho dos arquivos para realização de
múltiplos cálculos de docking no programa AutoDock são consideravelmente
grandes. Além disto, como visto na analise do FdI, nos exemplos com oito
instâncias de execução do Autodock, deve haver um elevado número de
núcleos de processamento parados esperando pelo último cálculo de cada
pacote de cálculos ser concluído, causando uma ociosidade de núcleos de
processamento que poderiam já estar sendo utilizados para a realização das
próximas tarefas individuais (cálculos de docking). Ao aumentar o número de
máquinas, ocorre a simultaneidade da ociosidade dos núcleos de
processamento, fazendo com que os cálculos sejam mais rápidos comparados
com a ociosidade sequencial e aditiva do exemplo com uma máquina. Por
exemplo, em um conjunto de cálculos realizados em quatro máquinas, há uma
chance de que estes núcleos de processamento possam estar
simultaneamente ociosos, a espera do ultimo cálculo ser concluído no último
núcleo ativo em cada máquina, e com isso, este tempo ocioso simultâneo é
contado uma única vez. Desta forma, acredita-se que esta ociosidade
simultânea fez com que os cálculos com mais máquinas fossem mais rápido do
que o previsto, uma vez que o FdM previsto é calculado tendo como base os
cálculos com apenas uma máquina, onde esta ociosidade é sequencial. Este
61
efeito pode ser melhor observado nos cálculos com oito instâncias de execução
(E8) nos casos com cinco e seis máquinas.
Tabela 6 – Tempo total estimado de comunicação entre os componentes do ambiente de grid
computacional.
Número de cálculos individuais de
Docking
Instâncias de execução do
programa AutoDock
Número de tasks
Tempo total de comunicação no ambiente de grid
(segundos)
500 1 500 5000
500 2 250 2500
500 4 125 1250
500 8 63 630
Como visto anteriormente (seção 5.2), observou-se um atraso (delay)
típico de aproximadamente 10 segundos entre o comando de envio da tarefa
(task) e a realização efetiva desta tarefa na máquina de trabalho (worker). Este
delay ocorre antes da execução de cada uma das tarefas (tasks) realizadas no
ambiente de grid computacional. No caso do programa AutoDock, ao aumentar
o número de instâncias de execução do programa em cada máquina, também
houve uma diminuição do número de tarefas (tasks), uma vez que, com
múltiplas instâncias de execução, cada task contém mais de um cálculo de
docking. Desta forma, ao aumentar o número de instâncias de execução do
programa AutoDock em cada máquina, além de diminuir o número de
processadores ociosos em cada máquina (como se observa na analise do FdI),
o tempo total de comunicação também é reduzido entre os componentes do
ambiente de grid computacional, comparado com o cálculo que utiliza apenas
uma instância de execução do programa AutoDock em cada máquina. Por
62
exemplo, o tempo total de comunicação (630 segundos) em cada job que utiliza
oito instâncias de execução do programa AutoDock foi bem menor do que o
tempo de comunicação (5000 segundos) observado nos jobs com apenas uma
instância de execução do programa AutoDock, conforme pode ser observado
na Tabela 6.
O aumento do número de máquinas utilizadas na realização dos cálculos
de docking também reduz o tempo total de comunicação entre os componentes
do ambiente de grid computacional, comparado com o tempo total de
comunicação sequencial em cálculos utilizando apenas uma máquina. Isto
ocorre, devido a simultaneidade destas comunicações que podem ocorrer
fortuitamente ao longo da execução do job, Esta simultaneidade das
comunicações entre as máquinas ocorre, obrigatoriamente, pelo menos no
primeiro conjunto de tarefas (tasks) enviado ao ambiente de grid
computacional, para múltiplas máquinas.
Ao examinar todos os testes do GriDoMol com o programa AutoDock,
pode-se observar que ao utilizar mais máquinas, ao invés de mais instâncias
de execução, o processo mostrou-se mais eficiente, levando menor quantidade
total de tempo. Por exemplo, utilizar quatro máquinas e apenas uma instância
de execução (ver Tabela 5 - tempo de execução: 41.976 segundos) é mais
rápido do que utilizar uma máquina e quatro instâncias de execução (ver
Tabela 5 - tempo de execução: 67.056 segundos). Ao utilizar ambas as formas
de distribuição para a realização dos cálculos de docking, ambiente de grid
computacional e múltiplas instâncias de execução do AutoDock, obteve-se uma
redução do tempo total de execução para apenas 3% (tempo de execução:
63
5.338 segundos) do tempo necessário comparado com o cálculo não
paralelizado (tempo de execução: 180.063 segundos), ou seja, feito com
apenas uma máquina e uma instância de execução do programa AutoDock.
Desta forma, ao utilizar estas formas de distribuição, os cálculos foram
realizados com o desempenho 33,73 vezes mais rápido, no ambiente de grid
computacional acessado pelo GriDoMol.
5.2.1.1 Reprodutibilidade do tempo de execução do AutoDock
Com o intuito de determinar se os parâmetros utilizados nos cálculos de
docking com o programa AutoDock os tornaram reprodutíveis em demanda
computacional, o tempo de execução de cada um destes cálculos para os
casos de uma máquina com uma instância de execução (Tabela 7), uma
máquina com oito instâncias de execução (Tabela 8) e seis máquinas com uma
instância de execução (Tabela 9), foram analisadas. Esta escolha de números
de máquinas e instâncias de execução do programa AutoDock utilizados neste
teste foi feita com o intuito de analisar possíveis impactos no tempo de
execução individual de cada cálculo ao aumentar o número de máquinas ou de
instâncias de execução simultânea do programa AutoDock. Os dados de tempo
utilizados nesta análise foram obtidos através dos arquivos de saída dos
cálculos individuais.
Observa-se nestas tabelas (Tabela 7, 8 e 9) que os valores obtidos em
cada cópia do cálculo se aproxima da média e que o desvio padrão é baixo. O
tempo de execução individual de cada cálculo no conjunto de cálculos com oito
64
instâncias de execução do programa AutoDock (Tabela 8) apresenta, em geral,
uma média mais alta que seus análogos com apenas uma instância de
execução do programa AutoDock (Tabela 7 e 9). Isto pode ter ocorrido devido a
possível sobrecarga dos núcleos de processamento ao utilizar todos os oito
núcleos de processamento de cada máquina, uma vez que cada máquina
possui, além dos cálculos sendo realizados, seus processos internos de
gerenciamento do sistema operacional, o que provavelmente ira dividir os
ciclos de processamento com alguns destes cálculos de docking simultâneos.
65
Tabela 7 - Tempos de execução individual de cada cálculo de docking, no AutoDock, ao utilizar
uma máquina e uma instância do programa AutoDock por máquina. As colunas E1 a E10
representa o tempo de execução individual de cada cópia de cada complexo dentro do mesmo
job.
Tempo (s)
Complexo E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 Média Desvio Padrão
1abe 192 197 194 196 195 192 194 195 193 193 194.1 1.66 1acj 160 161 157 157 156 154 155 156 157 158 157.1 2.13
1acm 269 285 271 271 272 274 281 284 282 283 277.2 6.32 1aha 182 182 182 182 182 180 183 187 185 185 183.0 2.05 1baf 567 596 567 573 566 568 596 589 596 596 581.4 14,19 1cbs 332 333 323 319 324 319 334 333 333 334 328.4 6,36 1com 249 250 248 250 243 245 250 253 252 251 249.1 3,07 1dbb 209 226 218 216 208 209 224 226 224 226 218.6 7,65 1eap 410 428 410 417 417 412 430 430 428 428 421.0 8,59 1eed 212 218 212 214 214 212 215 217 216 214 214.4 2,12 1fki 198 211 198 199 196 198 209 208 210 209 203.6 6,20 1hri 358 370 360 364 357 367 372 373 373 372 366.6 6,40 1hsl 218 217 218 217 217 219 224 218 218 217 218.3 2,11 1igj 609 641 614 611 613 613 641 640 640 640 626,2 15,03 1ive 259 263 257 257 259 258 263 264 264 264 260,8 3,05 1lah 231 239 231 235 231 236 238 248 238 234 236,1 5,17 1lst 252 260 253 251 261 251 263 259 258 260 256,8 4,56
1mcr 141 146 143 140 141 151 145 146 144 147 144,4 3,34 1mrg 182 184 186 181 182 183 185 184 184 185 183,6 1,58 1mrk 385 401 384 400 387 384 404 404 401 403 395,3 8,99 1mup 155 156 157 156 156 157 157 159 154 158 156,5 1,43 1rob 396 415 400 401 403 398 412 414 413 419 407,1 8,30 1snc 402 424 405 405 402 406 424 426 427 424 414,5 11,18 1srj 364 377 363 363 374 363 378 377 380 377 371,6 7,34 1stp 270 285 276 276 270 272 284 283 285 284 278,5 6,36 1tdb 319 331 326 318 324 320 331 332 333 332 326,6 5,97 1tng 170 173 178 171 173 171 170 171 171 170 171,8 2,44 1tnl 189 188 183 182 183 184 187 188 187 187 185,8 2,53 1tph 189 194 190 192 188 189 198 196 193 193 192,2 3,26 1tpp 306 321 313 304 306 306 322 323 321 320 314,2 7,97
1ukz 607 631 631 595 596 600 631 629 630 632 618,2 16,42 1ulb 154 159 153 164 156 155 160 161 160 160 158,2 3,52
2ack 184 186 183 184 184 184 184 184 184 185 184,2 0,79
2ak3 442 466 443 446 444 456 464 463 464 464 455,2 10,24
2cgr 510 529 519 511 517 507 533 527 530 531 521,4 9,78 2cht 212 217 214 212 213 212 219 215 218 214 214,6 2,59 2cmd 240 242 246 244 239 241 244 244 244 243 242,7 2,16 2dbl 367 386 376 366 368 368 383 383 384 383 376,4 8,29
2gbp 234 234 241 235 234 232 235 235 237 233 235,0 2,49 2r07 435 453 460 434 436 453 453 455 453 454 448,6 9,63
2sim 394 414 393 395 392 391 409 413 409 409 401,9 9,58 3hvt 211 225 218 213 210 214 228 227 225 223 219,4 6,98
3ptb 1808 1865 1808 1797 1820 1812 1847 1831 1861 1850 1829,9 24,40
3tpi 179 179 176 179 176 179 180 179 178 178 178,3 1,34 4cts 166 168 166 166 165 167 167 166 167 168 166,6 0,97 4fab 337 351 338 351 337 352 350 352 352 352 347,2 6,84 6abp 133 137 136 137 134 134 135 134 134 134 134,8 1,40 7tim 198 206 197 203 205 210 207 206 208 206 204,6 4,17 8atc 273 284 273 273 272 283 282 283 283 284 279,0 5,42 8gch 123 120 120 123 120 121 122 122 121 122 121,4 1,17
66
. Tabela 8 - Tempos de execução individual de cada cálculo de docking, no AutoDock, ao
utilizar uma máquina e oito instâncias simultâneas do programa AutoDock por máquina. As
colunas E1 a E10 representa o tempo de execução individual de cada cópia de cada complexo
dentro do mesmo job.
Tempo (s)
Complexo E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 Média Desvio Padrão
1abe 204 189 205 210 207 202 207 203 204 198 202,9 5,86 1acj 178 158 173 176 168 169 174 167 167 170 170,0 5,70
1acm 280 282 293 285 281 276 284 286 282 284 283,3 4,45 1aha 201 187 188 183 188 181 181 186 187 180 186,2 6,05
1baf 616 606 615 611 616 614 608 611 620 610 612,7 4,24 1cbs 340 336 339 337 332 332 339 338 330 336 335,9 3,45 1com 262 256 259 254 253 251 260 260 257 254 256,6 3,60 1dbb 243 231 236 239 227 236 235 237 230 235 234,9 4,60 1eap 442 440 448 442 442 449 448 443 441 442 443,7 3,30
1eed 233 226 231 229 227 225 236 224 226 228 228,5 3,81 1fki 232 230 238 230 228 237 227 234 235 230 232,1 3,75 1hri 397 390 390 390 388 384 387 388 380 383 387,7 4,69
1hsl 257 256 258 261 255 252 256 258 258 253 256,4 2,63 1igj 640 626 631 632 632 628 631 645 634 629 632,8 5,71 1ive 289 277 287 282 284 281 282 284 279 284 282,9 3,54 1lah 258 254 260 258 262 255 252 259 255 261 257,4 3,27
1lst 278 283 279 283 281 276 280 279 284 280 280,3 2,50 1mcr 158 155 160 157 156 157 158 158 158 157 157,4 1,35 1mrg 196 193 197 193 194 192 192 194 193 197 194,1 1,91 1mrk 430 430 430 436 435 434 432 429 422 424 430,2 4,49 1mup 174 168 169 167 170 171 169 168 169 174 169,9 2,42 1rob 439 425 435 440 430 432 435 427 434 426 432,3 5,25 1snc 463 446 454 461 461 454 459 450 461 451 456,0 5,79 1srj 391 392 394 396 393 385 378 389 374 386 387,8 7,15 1stp 313 314 311 312 300 307 312 311 319 308 310,7 4,99 1tdb 344 339 342 344 353 343 336 344 347 333 342,5 5,60 1tng 182 186 181 190 180 182 189 185 185 185 184,5 3,31 1tnl 198 197 193 196 200 199 196 195 207 197 197,8 3,79 1tph 213 206 203 207 206 203 211 201 205 203 205,8 3,76 1tpp 322 329 331 322 325 325 325 318 318 331 324,6 4,74 1ukz 586 586 593 585 594 585 587 586 588 594 588,4 3,75 1ulb 173 177 179 174 173 174 175 176 177 171 174,9 2,38 2ack 197 194 194 194 192 200 197 196 198 197 195,9 2,38 2ak3 493 483 492 495 488 488 486 494 483 484 488,6 4,62 2cgr 550 548 559 550 569 560 559 556 552 556 555,9 6,28 2cht 235 234 235 236 233 238 237 240 237 236 236,1 2,02 2cmd 250 251 248 250 253 252 256 251 253 251 251,5 2,17 2dbl 414 408 407 416 413 408 405 402 408 407 408,8 4,29 2gbp 265 258 257 261 262 261 258 251 256 258 258,7 3,83 2r07 483 477 491 486 486 477 480 475 478 476 480,9 5,34 2sim 418 418 427 418 418 417 417 417 417 422 418,9 3,21 3hvt 231 233 236 230 232 232 238 231 235 238 233,6 2,95 3ptb 1828 1807 1837 1801 1805 1839 1816 1802 1796 1796 1812,7 16,42 3tpi 186 187 189 191 190 186 180 191 186 187 187,3 3,27 4cts 171 172 166 170 169 171 166 168 168 166 168,7 2,26 4fab 362 359 367 354 360 357 361 353 362 357 359,2 4,16 6abp 148 150 147 153 150 145 146 149 155 148 149,1 3,07 7tim 210 213 206 204 209 209 212 210 204 213 209,0 3,37 8atc 287 258 282 282 276 283 287 274 280 284 279,3 8,58 8gch 138 121 138 133 132 133 130 133 130 134 132,2 4,80
67
Tabela 9 - Tempos de execução individual de cada cálculo de docking, no AutoDock, ao utilizar
seis máquinas e apenas uma instância do programa AutoDock por máquina. As colunas E1 a
E10 representa o tempo de execução individual de cada cópia de cada complexo dentro do
mesmo job.
Tempo (s)
Complexo E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 Média Desvio Padrão
1abe 193 192 193 193 193 193 193 193 191 193 192,7 0,67 1acj 158 155 154 157 155 156 157 155 156 157 156,0 1,25
1acm 277 279 277 279 278 279 284 278 283 279 279,3 2,36 1aha 184 183 184 184 184 185 181 183 184 184 183,6 1,07 1baf 585 592 593 591 583 589 599 598 594 587 591,1 5,24 1cbs 329 330 329 333 329 332 329 334 329 330 330,4 1,90 1com 247 251 248 252 251 253 251 250 251 252 250,6 1,84 1dbb 223 214 224 221 220 223 223 221 227 229 222,5 4,06 1eap 422 423 427 426 429 429 428 427 431 422 426,4 3,13 1eed 214 214 214 214 215 214 214 212 214 213 213,8 0,79 1fki 206 208 207 209 210 205 204 208 204 202 206,3 2,54 1hri 372 354 373 368 368 374 371 368 371 370 368,9 5,65 1hsl 231 230 231 230 228 231 237 230 231 230 230,9 2,33 1igj 627 637 631 641 644 630 629 642 628 629 633,8 6,51 1ive 261 259 261 261 259 263 264 261 264 262 261,5 1,78 1lah 233 234 236 237 234 234 237 235 236 235 235,1 1,37 1lst 257 255 261 255 255 260 257 254 256 258 256,8 2,30
1mcr 142 141 145 144 144 145 144 145 146 145 144,1 1,52 1mrg 185 182 184 181 182 184 182 183 185 190 183,8 2,57 1mrk 396 388 396 400 403 395 397 399 396 404 397,4 4,53 1mup 158 156 158 155 159 157 156 155 155 155 156,4 1,50 1rob 409 410 411 407 407 413 407 407 408 407 408,6 2,12 1snc 422 419 415 418 423 419 424 418 417 420 419,5 2,80 1srj 379 366 372 373 377 370 372 380 372 380 374,1 4,70 1stp 281 282 287 281 284 287 282 281 287 281 283,3 2,71 1tdb 326 326 325 329 327 330 332 328 326 327 327,6 2,17 1tng 184 181 179 183 183 180 183 182 182 180 181,7 1,64 1tnl 188 184 187 185 186 186 185 188 185 188 186,2 1,47 1tph 192 192 190 194 197 192 191 192 192 192 192,4 1,90 1tpp 321 322 324 315 321 317 321 319 319 318 319,7 2,63 1ukz 615 617 618 618 615 619 619 620 617 626 618,4 3,13 1ulb 157 157 157 156 156 157 159 158 157 160 157,4 1,26 2ack 183 185 185 183 183 185 187 183 184 183 184,1 1,37 2ak3 463 456 465 467 462 457 461 457 459 462 460,9 3,63 2cgr 523 528 533 532 522 530 527 529 531 522 527,7 4,11 2cht 216 216 213 213 215 217 213 214 213 214 214,4 1,50 2cmd 240 242 246 243 241 244 243 242 244 241 242,6 1,78 2dbl 380 372 376 378 377 378 382 377 376 382 377,8 3,01 2gbp 234 233 234 236 234 232 235 237 236 237 234,8 1,69 2r07 446 452 448 449 449 456 447 451 453 449 450,0 3,02 2sim 406 403 410 409 412 403 407 407 408 409 407,4 2,87 3hvt 223 208 220 221 222 220 221 220 220 225 220,0 4,52 3ptb 1819 1816 1814 1857 1875 1862 1856 1844 1845 1835 1842,3 20,98 3tpi 180 180 178 179 177 180 178 177 180 178 178,7 1,25 4cts 166 167 166 166 166 167 167 165 167 168 166,5 0,85 4fab 344 345 351 349 352 345 360 349 351 350 349,6 4,62 6abp 134 134 134 134 136 134 132 134 135 132 133,9 1,20 7tim 208 205 204 203 205 205 206 204 206 205 205,1 1,37 8atc 278 283 278 278 280 282 281 284 279 280 280,3 2,16 8gch 121 124 121 120 120 120 122 124 121 122 121,5 1,51
68
Figura 5.7 – Gráfico de dispersão dos cálculos individuais de docking com o programa
AutoDock ao utilizar: (a) uma máquina e uma instância de execução; (b) uma máquina e oito
instâncias de execução; (c) seis máquinas e uma instância de execução.
69
As pequenas barras mostradas nos gráficos da Figura 5.7 representam o
desvio padrão ao redor da média de tempo das 10 cópias de execução do
cálculo de docking para cada complexo. Conforme se pode observar nestes
gráficos, o desvio padrão observado para estas amostras de tempo é baixo, em
relação ao tempo total de execução de cada cálculo individual. Isto indica que
estes cálculos de docking realizados nestas configurações e ajustes (“setup”)
do programa AutoDock, parecem ser significativamente reprodutíveis,
particularmente no que diz respeito à demanda computacional que eles
apresentam. Ao se levar em consideração os cálculos com seis máquinas
(Tabela 9) (Figura 5.7c), também são observados valores baixos de desvio
padrão. Neste cálculo de docking com seis máquinas há uma grande chance
de que as cópias de execução de cada cálculo tenham sido realizadas por
máquinas diferentes, reforçando ainda mais a reprodutibilidade dos cálculos
individuais, permitindo que a comparação de desempenho seja fundamentada
em critérios quantitativos.
Acredita-se que estes tempos de execução podem ter sido obtidos
devido a mudança realizada no parâmetro seed (semente inicial para o gerador
de números aleatórios) para um valor fixo. Este parâmetro determina por onde
o algoritmo genético começará sua busca e, ao torná-lo fixo, possibilita a
reprodutibilidade dos procedimentos de cálculo de docking, uma vez que o
cálculo sempre começará da mesma maneira. Desta forma acredita-se ser
possível a reprodução destes tempos, desde que nas mesmas circunstâncias
de configuração, quantidade de máquinas e instâncias de execução do
programa AutoDock.
70
5.2.2 Resultados do AutoDock Vina
Ao analisar os resultados de desempenho do AutoDock Vina (Tabela
10), pode-se observar o ganho de desempenho ao aumentar o número de
máquinas ou de núcleos de processamento (cores) usados no cálculo.
Tabela 10 – Desempenho computacional comparativo do GriDoMol durante a realização dos
cálculos com o AutoDock Vina.
# Máquinas
# Núcleos de processamento
Tempo (segundos)
FdC observado
FdC previsto
FdM observado
FdM previsto
Tempo previsto
(segundos)
1 1 98561 1,00 1,00 - - 98561,00
1 2 52680 1,87 2,00 - - 49280,50
1 4 30690 3,21 4,00 - - 24640,25
1 8 20977 4,70 8,00 - - 12320,13
2 1 49380 - 1,00 2,00 2,00 49280,50
2 2 25859 1,91 2,00 2,04 2,00 24690,00
2 4 15206 3,25 4,00 2,02 2,00 12345,00
2 8 11712 4,22 8,00 1,79 2,00 6172,50
3 1 32757 - 1,00 3,01 3,00 32853,67
3 2 18126 1,81 2,00 2,91 3,00 16378,50
3 4 10905 3,00 4,00 2,81 3,00 8189,25
3 8 7611 4,30 8,00 2,76 3,00 4094,63
4 1 24560 - 1,00 4,01 4,00 24640,25
4 2 12586 1,95 2,00 4,19 4,00 12280,00
4 4 7117 3,45 4,00 4,31 4,00 6140,00
4 8 4951 4,96 8,00 4,24 4,00 3070,00
5 1 19646 - 1,00 5,02 5,00 19712,20
5 2 10111 1,94 2,00 5,21 5,00 9823,00
5 4 6529 3,01 4,00 4,70 5,00 4911,50
5 8 4528 4,34 8,00 4,63 5,00 2455,75
6 1 16373 - 1,00 6,02 6,00 16426,83
6 2 9100 1,80 2,00 5,79 6,00 8186,50
6 4 5383 3,04 4,00 5,70 6,00 4093,25
6 8 3717 4,40 8,00 5,64 6,00 2046,63
7 1 14065 - 1,00 7,01 7,00 14080,14
7 2 7792 1,81 2,00 6,76 7,00 7032,50
7 4 4653 3,02 4,00 6,60 7,00 3516,25
7 8 3181 4,42 8,00 6,59 7,00 1758,13
8 1 12312 - 1,00 8,01 8,00 12320,13
8 2 6868 1,79 2,00 7,67 8,00 6156,00
8 4 4056 3,04 4,00 7,57 8,00 3078,00
8 8 2823 4,36 8,00 7,43 8,00 1539,00
71
Figura 5.8 – Gráfico do desempenho do AutoDock Vina em função do tempo. As curvas com a
legenda no formato Nx (onde x se refere ao número de núcleos de processamento utilizados)
se refere aos valores observados enquanto as curvas no formato Nxp representam os valores
previstos.
Observou-se na Figura 5.8 que o tempo de execução dos 500 cálculos
de docking se aproxima do tempo previsto. As curvas de tempo observado e o
de tempo previsto ficaram praticamente sobrepostas.
72
Figura 5.9 – Gráfico dos valores de FdC no programa AutoDock Vina. A legenda no formato Mx
(onde x se refere ao número de máquinas utilizadas) se refere aos valores observados.
Pode-se observar no gráfico do FdC obtido para o programa AutoDock
Vina (Figura 5.9), o comportamento mais homogêneo dos valores previstos e
observados de tempo de cálculo total para cada teste. Verificou-se, nesta
métrica, valores aquém do valor teórico esperado ou previsto para FdC, ficando
mais evidente nos casos que utilizam oito núcleos de processamento, os quais,
nestes casos, atingem valores um pouco mais da metade do previsto para FdC.
Isto ocorre, devido ao fato de que o aumento do número de núcleos de
processamento reduz o tempo sequencial com processamento, mas
tipicamente não reduz o tempo gasto com as outras operações fundamentais
73
que precisam ser realizadas no ambiente de grid computacional. Desta forma,
o número de núcleos de processamento (cores) só acelera a execução do
cálculo de docking na máquina, não influenciando a parcela de tempo gasto
pela comunicação e transferências de arquivos entre os componentes do grid
computacional. Além disto, acredita-se que esta diferença entre o desempenho
previsto e observado esteja relacionada a limitação de ganho de desempenho
na paralelização interna do programa AutoDock Vina. Uma discussão mais
detalhada e quantitativa deste efeito encontra-se no final da seção 5.2.2.1.
Figura 5.10 – Gráfico dos valores de FdM no programa AutoDock Vina. A legenda no formato
Mx (onde x se refere ao número de máquinas utilizadas) se refere aos valores observados.
Os valores do FdM para o programa AutoDock Vina (Figura 5.10), em
geral, se mantiveram próximos aos valores previstos. Entretanto, alguns
74
valores para o FdM ficaram acima do previsto, como, por exemplo, ao utilizar
cinco máquinas e dois dos núcleos de processamento em cada máquina (barra
N2, com cinco máquinas). Outro exemplo de teste onde este efeito pode ser
observado foi com quatro máquinas e quatro núcleos de processamento cada
(barra N4 com quatro máquinas). Isto ocorre devido a ocasionais transferências
simultâneas, as quais reduziram o tempo total gasto na transferência de
arquivos e, consequentemente, diminuiu o tempo total de execução do job
(conjunto de cálculos) como um todo.
Para elucidar esta hipótese sobre a transferência simultânea impactar o
FdM, selecionou-se alguns destes testes que apresentaram valores de FdM
observado acima do previsto, barras N2 com cinco máquinas e N4 com quatro
máquinas, foram refeitos sem a etapa de transferência de arquivos de tal forma
que todos os arquivos necessários para a realização dos cálculos foram pré-
disponibilizados em cada máquina e, desta forma, obteve-se uma redução dos
valores de FdM observados para valores mais próximos do previsto (Tabela
11).
Tabela 11 – Cálculos refeitos para elucidar os valores elevados de FdM encontrados em alguns
dos cálculos.
Máquinas (X)
Núcleos de processamento
FdM com transferência
(TXct)
Tempo com transferência
(s)
FdM sem transferência
(TXst)
Tempo sem transferência
(s)
Diferença percentual
1 2 - 52680 - 49585 5,87%
1 4 - 30690 - 27809 9,39%
4 4 4,31 7117 4,10 6783 4,69%
5 2 5,21 10111 5,07 9784 3,24%
75
A diferença percentual entre os cálculos com a transferência de arquivos
e os cálculos com todos os arquivos pré-disponibilizados em cada máquina,
eliminando-se desta forma, a transferência principal de arquivos, dá uma idéia
da percentagem de tempo gasto com esta etapa de transferências (Tabela 11).
Esta comparação percentual relativa é calculada através da diferença entre o
tempo de execução com a etapa de transferência de arquivos (TXct) e o tempo
de execução sem esta etapa (TXst), dividido pelo tempo de execução com
transferência de arquivos (TXct), conforme observa-se na equação 3.
Diferença percentual do cálculo com X máquinas = (TXct – TXst)/TXct (3)
Esta diferença percentual relativa indica o quanto a execução do
conjunto de cálculos demorou em relação a seu análogo sem a etapa de
transferência de arquivos. Por exemplo, o cálculo com a etapa de transferência
de arquivos realizado em uma máquina utilizando quatro dos oito núcleos de
processamento é 9,39% maior do que o seu análogo sem a transferência de
arquivos. Esta diferença diminui ao aumentar o número de máquinas utilizadas
na execução do job (conjunto de cálculos), como é o caso de quatro e cinco
máquinas, com diferenças percentuais de 4,69 e 3,24%, respectivamente.
Acredita-se que isto pode ocorrer devido à redução do tempo gasto com as
comunicações e transferências de arquivos quando estas ocorrem de forma
simultânea, em ambientes onde várias máquinas estão sendo utilizadas na
distribuição das tarefas.
Em adição, os dados da Tabela 11 também evidenciam que os valores
de FdM observados se aproximaram dos valores previstos, quando a etapa de
76
transferência de arquivos foi suprimida, ou seja, quando os arquivos eram pré-
disponibilizados nas máquinas de cálculo. Em outras palavras, o valor de FdM
observado com transferência de arquivos (cálculo padrão) para o caso de
quatro máquinas e quatro núcleos de processamento, foi de 4,31. Ao se
eliminar a etapa de transferência de arquivos, o valor de FdM observado foi
para o valor de 4,10 mais próximo ao valor previsto, igual a 4. O mesmo
acontece com o caso de 5 máquinas e 2 cores, o valor de FdM observado com
transferência de arquivos é de 5,21, enquanto o valor observado sem
transferência de arquivos é de 5,07, mais próximo do valor previsto, igual a 5.
Estas observações nos valores observados de FdM e como eles diminuem, se
aproximando dos valores previstos, quando se realiza o procedimento sem a
transferência de arquivos, corrobora com a hipótese levantada e exposta nos
parágrafos acima.
Examinando-se todos os testes do GriDoMol com o programa AutoDock
Vina e considerando o desempenho do ambiente de grid computacional como
um todo, pode-se observar que ao utilizar mais máquinas, ao invés de mais
núcleos de processamento, o processo mostrou-se mais eficiente, levando
menor quantidade total de tempo. Por exemplo, utilizar oito máquinas e apenas
um núcleo de processamento (ver Tabela 10 - tempo de execução: 12.312
segundos) é mais rápido do que utilizar uma máquina com oito núcleos de
processamento (cores) (ver Tabela 10 - tempo de execução: 20.977 segundos).
Ao se utilizar ambas as formas de distribuição para a realização dos
cálculos de docking, o ambiente de grid computacional e a paralelização
multicore, pode ser obtida uma redução do tempo total necessário para apenas
77
3% do tempo necessário comparado com o cálculo não paralelizado. Desta
forma, a utilização destas formas de distribuição proporcionou um aumento de
desempenhos de até 34,91 vezes, com cálculos mais rápidos no ambiente de
grid computacional acessado pelo GriDoMol.
5.2.2.1 Reprodutibilidade do tempo de execução do AutoDock Vina
Com o intuito de determinar se os parâmetros utilizados nos cálculos de
docking com o programa AutoDock Vina tornou os cálculos individuais
reprodutíveis em demanda computacional, foi analisado o tempo individual de
execução de cada um destes cálculos para uma máquina utilizando apenas um
núcleo de processamento (Tabela 12), uma máquina utilizando oito núcleos de
processamento (Tabela 13) e oito máquinas utilizando apenas um núcleo de
processamento (Tabela 14). Esta escolha de número de máquinas e núcleos
de processamento utilizados foi feita com o intuito de analisar possíveis
impactos no tempo de execução individual de cada cálculo ao aumentar o
número de máquinas ou núcleos de processamento. Os dados de tempo
utilizados nesta analise foram obtidos através dos arquivos de saída dos
cálculos individuais.
Observa-se nestas tabelas (Tabela 12, 13 e 14) que os valores obtidos
em cada cópia do cálculo se aproxima da média e que o desvio padrão nestes
casos é baixo, levando em consideração o tempo individual de execução
destes cálculos.
78
Tabela 12 – Tempos de execução individual de cada cálculo de docking, no AutoDock Vina, ao
utilizar uma máquina e um núcleo de processamento cada. As colunas E1 a E10 representa o
tempo de execução individual de cada cópia de cada complexo dentro do mesmo job.
Tempo (s)
Complexo E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 Média Desvio Padrão
1abe 70,07 69,97 70,03 70,02 70,01 70,11 70,02 70,10 70,04 70,06 70,04 0,04 1acj 38,82 39,43 38,83 38,85 38,85 39,44 38,87 39,43 38,84 38,84 39,02 0,28
1acm 153,50 153,47 154,37 153,54 153,50 154,74 153,58 153,56 153,52 153,52 153,73 0,44 1aha 41,34 40,95 41,34 41,34 41,35 41,36 40,99 40,98 40,97 40,96 41,16 0,20 1baf 546,50 546,44 549,53 549,55 546,70 549,51 546,84 546,83 546,35 547,10 547,54 1,39 1cbs 171,48 171,47 172,83 171,44 171,47 171,45 171,47 172,79 172,75 171,49 171,86 0,64 1com 165,58 165,49 166,76 165,55 165,58 165,63 165,70 166,79 165,86 165,59 165,85 0,50 1dbb 162,56 162,59 165,64 162,66 162,61 162,60 162,63 165,59 162,57 162,66 163,21 1,27 1eap 359,23 360,74 359,31 359,35 359,16 359,20 360,84 359,36 359,31 359,42 359,59 0,64 1eed 134,72 133,92 133,88 134,75 133,92 133,86 134,71 133,92 133,90 134,50 134,21 0,40 1fki 92,67 90,87 90,86 90,88 90,94 92,70 90,93 90,89 90,86 90,85 91,25 0,76 1hri 461,42 461,54 461,81 461,33 461,79 461,62 461,57 463,60 463,44 461,56 461,97 0,83 1hsl 93,00 92,93 93,50 92,94 92,90 93,46 92,96 93,02 92,95 93,49 93,12 0,26 1igj 620,65 616,67 616,66 616,88 616,55 616,93 616,57 616,64 620,87 616,69 617,51 1,72 1ive 239,48 240,77 239,51 239,39 239,58 239,52 239,46 239,50 239,50 239,43 239,61 0,41 1lah 99,43 99,02 99,03 99,01 98,96 99,46 99,06 99,00 99,45 98,97 99,14 0,21 1lst 125,95 126,47 125,94 126,44 125,93 126,46 125,96 125,93 125,93 125,89 126,09 0,25
1mcr 32,58 32,60 32,60 32,97 32,97 32,60 32,61 32,59 32,60 32,60 32,67 0,16 1mrg 49,72 49,72 49,69 49,72 50,04 49,68 49,72 49,73 49,71 50,25 49,80 0,19 1mrk 233,31 234,63 233,30 233,36 233,31 233,40 234,72 233,34 233,36 233,40 233,61 0,56 1mup 33,61 33,36 33,31 33,33 33,34 33,60 33,35 33,30 33,36 33,30 33,39 0,12 1rob 256,81 256,78 256,72 256,71 258,95 256,76 256,76 256,78 258,31 256,79 257,14 0,80 1snc 362,41 360,15 360,32 360,29 360,21 362,40 360,33 360,51 360,41 360,08 360,71 0,90 1srj 167,84 169,09 167,93 167,85 167,88 167,87 167,82 167,93 169,03 167,86 168,11 0,50 1stp 154,97 154,95 153,82 172,21 153,85 154,92 153,90 154,95 153,86 153,89 156,13 5,67 1tdb 183,00 182,96 183,04 183,09 183,12 184,34 183,38 184,31 183,21 183,03 183,35 0,53 1tng 37,30 41,95 37,30 37,33 37,32 37,31 37,35 37,31 37,72 37,32 37,82 1,46 1tnl 45,88 45,87 45,49 45,39 45,85 45,42 46,00 45,48 45,56 45,42 45,64 0,23 1tph 69,41 69,45 69,48 70,07 69,48 69,45 70,02 69,49 69,46 69,40 69,57 0,25
1tpp 173,39 173,42 175,32 173,56 173,38 173,36 175,47 173,46 174,60 173,38 173,93 0,85 1ukz 534,82 535,56 535,29 535,22 535,61 537,66 535,10 535,45 535,27 535,49 535,55 0,78 1ulb 32,62 32,30 32,62 32,61 32,21 32,21 32,22 32,24 32,58 32,23 32,38 0,19 2ack 56,13 56,08 56,13 56,13 56,08 56,78 56,17 56,74 56,12 56,08 56,24 0,27 2ak3 321,01 320,87 320,69 321,00 320,86 320,78 320,91 321,27 320,75 321,90 321,00 0,35 2cgr 399,73 399,75 397,42 397,44 397,71 397,53 399,79 397,44 397,44 397,52 398,18 1,09 2cht 80,39 79,64 79,67 80,42 79,72 80,42 80,45 80,42 80,42 80,46 80,20 0,36 2cmd 122,68 123,39 122,66 122,64 122,66 122,69 123,28 122,69 122,65 122,68 122,80 0,28 2dbl 320,80 320,93 320,93 320,86 320,94 320,89 323,38 320,89 320,86 320,85 321,13 0,79 2gbp 167,02 166,85 166,86 166,83 168,14 166,88 166,88 168,14 166,94 166,80 167,13 0,53 2r07 399,57 399,73 400,24 401,82 400,05 400,02 400,05 399,69 401,75 402,06 400,50 0,97 2sim 277,63 277,59 276,24 275,91 275,91 275,96 276,12 276,09 275,97 276,05 276,35 0,67 3hvt 73,25 73,23 73,25 73,55 73,28 73,31 74,18 73,27 74,15 73,25 73,47 0,37 3ptb 40,42 40,47 40,42 40,43 40,87 40,86 40,87 40,87 40,42 40,41 40,60 0,23 3tpi 55,37 55,39 55,43 55,75 55,37 55,39 55,42 55,74 55,38 55,40 55,46 0,15 4cts 44,44 44,81 44,87 44,45 44,45 44,48 44,43 44,98 44,45 44,45 44,58 0,21 4fab 192,11 192,24 191,04 190,95 192,26 190,84 192,43 193,22 192,40 192,06 191,96 0,77 6abp 20,31 20,30 20,39 20,32 20,30 20,29 20,60 20,31 20,60 20,79 20,42 0,18 7tim 74,35 74,44 74,36 74,38 74,40 74,39 74,47 74,38 74,38 74,37 74,39 0,04 8atc 143,64 143,64 143,61 144,51 143,64 143,57 143,68 144,45 143,67 143,65 143,81 0,36 8gch 14,42 14,45 14,42 14,32 14,43 14,29 14,34 14,43 14,30 14,43 14,38 0,06
79
Tabela 13 – Tempos de execução individual de cada cálculo de docking, no AutoDock Vina, ao
utilizar uma máquina e oito núcleos de processamento cada. As colunas E1 a E10 representa o
tempo de execução individual de cada cópia de cada complexo dentro do mesmo job.
Tempo (s)
Complexo E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 Média Desvio Padrão
1ABE 11,43 15,39 12,07 15,23 10,37 15,43 10,03 15,21 10,57 14,55 13,03 2,33 1ACJ 6,18 5,91 7,48 6,02 5,95 6,17 6,68 6,32 6,34 6,11 6,32 0,47 1ACM 22,31 22,29 22,12 22,64 22,21 22,47 22,33 22,12 22,29 22,12 22,29 0,17 1AHA 6,64 6,69 5,85 7,01 6,42 8,71 7,09 6,73 5,76 8,34 6,92 0,95 1BAF 73,44 74,89 74,89 75,17 74,80 74,82 74,70 74,17 75,15 74,65 74,67 0,51 1CBS 25,21 25,25 25,14 25,15 25,92 25,56 25,42 25,36 25,22 25,91 25,41 0,29 1COM 25,01 24,28 27,66 24,57 24,37 24,33 23,60 24,73 24,34 24,49 24,74 1,09 1DBB 22,64 22,29 22,54 22,58 22,59 22,45 22,56 22,61 22,65 22,09 22,50 0,18 1EAP 48,60 49,65 50,85 49,11 49,92 48,93 50,46 49,36 50,70 49,25 49,68 0,77 1EED 19,48 19,89 19,53 19,63 19,55 19,32 19,53 19,28 19,35 19,87 19,54 0,21 1FKI 15,69 16,00 16,03 15,64 20,30 16,64 16,10 15,98 16,31 16,25 16,49 1,37 1HRI 63,48 63,62 63,86 63,56 63,60 63,58 63,83 63,67 63,47 63,84 63,65 0,14 1HSL 15,54 12,90 15,45 15,51 15,56 15,72 15,57 15,53 15,59 15,63 15,30 0,85 1IGJ 84,17 83,94 83,95 84,44 84,02 84,15 84,08 84,01 84,07 84,78 84,16 0,26 1IVE 32,53 32,35 34,23 33,16 32,79 32,68 32,61 32,62 32,72 32,97 32,87 0,53 1LAH 17,13 17,90 14,98 17,94 18,08 13,73 16,30 13,34 16,25 17,94 16,36 1,79 1LST 20,04 19,96 20,25 19,91 20,08 19,62 19,98 20,01 20,04 19,98 19,99 0,16 1MCR 6,92 5,29 5,35 8,38 5,81 4,95 5,36 5,97 8,44 5,65 6,21 1,27 1MRG 9,11 10,67 9,66 11,20 11,10 7,38 9,92 7,12 9,74 7,46 9,34 1,54 1MRK 31,70 32,06 32,54 32,22 32,25 32,08 31,96 32,91 33,08 31,86 32,27 0,45 1MUP 5,49 4,92 6,04 5,21 5,11 6,07 5,37 5,19 6,29 5,17 5,49 0,47 1ROB 35,90 35,49 35,80 35,39 35,50 35,37 35,45 36,31 35,85 35,54 35,66 0,30 1SNC 49,15 49,49 49,15 49,24 49,19 49,15 49,47 49,13 48,83 49,14 49,19 0,18 1SRJ 26,43 25,96 25,87 26,09 26,00 25,81 25,87 26,65 27,15 26,18 26,20 0,43 1STP 22,68 21,27 22,68 23,73 22,88 22,57 22,63 22,61 22,54 22,41 22,60 0,59 1TDB 27,26 27,29 27,15 27,17 27,56 27,37 27,26 27,32 27,47 27,70 27,36 0,17 1TNG 6,16 7,29 6,09 5,88 7,64 6,47 6,08 7,64 7,33 7,77 6,84 0,76 1TNL 9,54 7,30 8,81 7,19 11,45 7,70 9,84 7,06 7,49 8,62 8,50 1,44 1TPH 12,96 11,57 14,66 11,81 15,00 13,52 14,44 14,73 11,96 13,70 13,44 1,30 1TPP 25,80 25,78 26,07 26,04 26,01 26,25 25,88 25,77 25,71 25,57 25,89 0,20 1UKZ 72,43 73,14 72,63 72,41 72,73 72,62 72,68 72,53 73,21 72,50 72,69 0,28 1ULB 6,24 5,97 6,15 5,80 7,65 6,27 5,97 6,44 6,05 6,00 6,25 0,52 2ACK 13,39 8,49 12,12 12,69 11,56 13,12 10,90 8,36 9,21 13,34 11,32 1,99 2AK3 46,06 45,48 45,22 45,68 44,36 46,24 45,62 45,73 46,14 46,07 45,66 0,56 2CGR 53,95 54,06 53,18 54,14 54,04 54,37 54,13 54,09 53,50 53,76 53,92 0,35 2CHT 11,27 14,66 14,67 11,54 11,71 12,93 14,76 14,63 14,68 14,24 13,51 1,48 2CMD 19,69 21,21 21,23 20,32 21,49 20,46 20,05 21,22 21,29 17,82 20,48 1,12 2DBL 43,16 44,13 44,57 44,28 43,03 44,59 44,33 44,59 43,16 45,42 44,13 0,78 2GBP 27,14 29,78 30,12 27,27 28,77 30,45 27,09 30,16 25,53 30,37 28,67 1,77 2R07 55,54 55,58 55,68 55,83 55,56 56,09 55,59 55,47 55,55 55,63 55,65 0,18 2SIM 39,56 39,22 39,19 38,99 38,87 39,21 38,63 39,59 39,07 38,78 39,11 0,31 3HVT 13,39 13,87 16,70 14,66 14,11 12,22 16,44 14,79 14,31 15,36 14,59 1,35 3PTB 9,65 6,94 7,24 9,04 7,97 8,29 9,75 7,89 6,75 6,55 8,01 1,17 3TPI 12,62 8,69 7,94 8,30 8,87 9,26 9,44 9,66 12,98 8,16 9,59 1,78 4CTS 6,50 8,85 7,13 8,53 8,42 9,04 7,74 6,88 10,36 6,75 8,02 1,23 4FAB 27,49 28,04 27,83 27,52 27,95 27,46 27,91 28,25 27,64 28,09 27,82 0,28 6ABP 3,78 3,97 3,63 3,85 3,51 3,73 3,74 3,56 3,99 3,84 3,76 0,16 7TIM 14,40 14,35 14,14 12,37 14,36 14,17 14,26 14,22 14,16 14,43 14,09 0,61 8ATC 22,58 22,30 22,42 22,21 22,36 22,41 22,27 22,27 22,43 22,33 22,36 0,11 8GCH 3,46 3,30 3,47 3,24 4,44 3,55 3,70 3,54 3,29 3,74 3,57 0,35
80
Tabela 14 - Tempos de execução individual de cada cálculo de docking, no AutoDock Vina, ao
utilizar oito máquina e um núcleo de processamento cada. As colunas E1 a E10 representa o
tempo de execução individual de cada cópia de cada complexo dentro do mesmo job.
Tempo (s)
Complexo E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 Média Desvio Padrão
1abe 70,48 70,97 70,09 70,51 70,05 70,55 70,43 70,48 70,91 69,98 70,45 0,33 1acj 39,04 38,80 39,05 39,15 38,86 39,03 38,82 38,81 38,85 38,83 38,92 0,13
1acm 153,50 153,47 153,50 153,52 153,55 153,57 153,53 154,44 153,54 153,59 153,62 0,29 1aha 41,32 40,93 41,23 40,83 40,84 40,95 40,99 40,85 41,24 41,24 41,04 0,19
1baf 547,07 546,66 547,32 546,06 545,94 546,60 548,67 549,52 546,85 545,80 547,05 1,20 1cbs 171,60 172,98 171,60 172,91 171,62 173,80 172,81 172,82 171,47 171,51 172,31 0,84 1com 165,55 165,53 165,59 165,56 165,76 165,49 165,50 165,52 165,56 165,82 165,59 0,11 1dbb 162,88 162,81 162,60 165,85 162,63 162,83 162,57 162,88 162,86 162,57 163,05 0,99 1eap 360,79 359,83 359,38 360,88 359,69 359,75 359,30 361,00 359,08 361,50 360,12 0,84 1eed 133,86 133,87 134,67 133,87 133,77 133,92 133,79 134,78 133,81 133,91 134,03 0,37 1fki 91,01 90,99 90,93 91,00 90,95 90,91 90,99 91,02 90,88 92,40 91,11 0,46 1hri 461,46 461,48 463,56 462,66 462,50 461,59 462,64 463,25 462,67 462,50 462,43 0,72 1hsl 94,07 93,51 93,50 93,55 92,94 93,53 93,48 93,55 94,05 93,52 93,57 0,32 1igj 616,55 617,22 620,86 616,41 617,23 617,16 620,62 616,92 617,27 620,91 618,12 1,87 1ive 238,98 239,05 240,74 239,07 239,05 239,55 238,97 240,46 239,44 239,06 239,44 0,65 1lah 99,44 99,14 99,55 98,99 99,53 99,42 99,13 99,11 98,97 99,01 99,23 0,23 1lst 125,45 125,90 125,95 125,96 125,95 125,42 125,92 125,40 125,89 126,48 125,83 0,33
1mcr 32,62 32,64 32,99 32,99 32,59 32,63 32,71 32,96 32,63 32,63 32,74 0,16 1mrg 49,76 49,70 49,71 49,74 49,71 50,32 49,73 49,70 49,69 49,76 49,78 0,19 1mrk 233,21 234,68 233,24 233,08 233,35 233,20 233,22 233,21 234,91 233,38 233,55 0,66 1mup 33,34 37,25 33,39 33,59 33,34 33,59 33,71 33,40 33,37 33,33 33,83 1,21 1rob 258,21 257,30 257,30 257,09 256,89 256,98 257,10 256,77 257,19 256,84 257,17 0,41 1snc 361,85 361,98 364,20 362,31 361,87 360,36 364,01 363,67 362,22 363,86 362,63 1,25 1srj 168,05 167,85 168,13 167,88 168,35 168,10 167,79 167,86 168,09 167,93 168,00 0,17 1stp 153,92 153,88 153,88 155,02 153,90 153,86 153,96 155,03 153,77 153,92 154,11 0,48 1tdb 183,40 185,66 183,00 183,44 184,47 184,90 183,94 183,59 183,79 183,09 183,93 0,85 1tng 37,67 37,27 37,29 37,68 37,28 37,26 37,47 37,33 37,32 37,33 37,39 0,16 1tnl 45,88 45,44 51,17 43,40 45,42 45,39 45,43 45,42 45,37 45,41 45,83 1,99 1tph 70,16 69,52 70,14 69,46 69,47 70,27 69,52 70,14 69,47 69,49 69,76 0,36 1tpp 173,55 173,30 174,85 173,67 174,86 174,82 173,69 173,41 173,66 173,49 173,93 0,64 1ukz 538,17 538,22 535,79 535,79 535,67 540,50 538,52 535,67 537,67 535,70 537,17 1,69 1ulb 32,23 32,58 32,23 32,24 32,50 32,80 32,59 32,22 32,49 32,52 32,44 0,20 2ack 56,07 56,68 56,09 56,81 56,71 56,07 56,69 56,08 56,08 56,10 56,34 0,33 2ak3 324,89 320,78 322,89 321,42 320,61 321,48 324,85 320,82 321,15 320,75 321,96 1,66 2cgr 397,27 400,07 400,13 399,92 399,62 435,83 399,85 399,91 403,90 402,03 403,85 11,36 2cht 79,68 80,39 79,68 79,68 80,42 79,68 79,67 80,41 79,67 79,70 79,90 0,35 2cmd 122,68 122,50 122,63 122,51 122,71 123,35 122,57 122,53 122,59 122,65 122,67 0,25 2dbl 321,30 320,77 323,54 320,96 321,50 321,42 321,37 321,33 321,37 323,46 321,70 0,97 2gbp 167,40 167,37 168,58 167,55 167,50 167,40 166,94 166,96 167,38 168,56 167,56 0,57 2r07 401,26 401,58 399,49 399,31 399,90 399,88 399,57 400,08 399,71 399,69 400,05 0,76 2sim 277,30 275,15 275,95 274,87 275,83 276,17 275,24 275,06 275,26 277,47 275,83 0,92 3hvt 73,37 73,38 73,39 74,28 74,38 74,28 74,16 73,38 73,41 73,43 73,75 0,46 3ptb 40,23 40,43 40,65 40,24 40,83 40,65 40,30 40,26 40,64 40,85 40,51 0,24 3tpi 55,33 55,67 55,64 55,34 55,35 55,67 55,38 55,42 55,34 55,36 55,45 0,15 4cts 44,51 44,83 44,51 44,86 44,83 44,51 44,88 44,52 44,51 44,83 44,68 0,18 4fab 192,22 191,34 192,76 191,08 192,89 192,73 191,31 192,73 191,35 192,78 192,12 0,75 6abp 20,62 20,27 20,59 20,30 20,30 20,58 20,29 20,26 20,30 20,28 20,38 0,15 7tim 74,54 74,57 74,58 74,54 74,55 74,55 74,39 74,39 74,52 75,37 74,60 0,28 8atc 144,39 143,58 144,41 143,49 144,53 144,21 143,48 143,60 144,28 143,63 143,96 0,44 8gch 14,44 14,31 14,30 14,32 14,30 14,41 14,31 14,41 14,30 14,39 14,35 0,06
81
Figura 5.11 – Gráfico de dispersão dos cálculos individuais de docking com o programa
AutoDock Vina ao utilizar: (a) uma máquina e um núcleo de processamento; (b) uma máquina
e oito núcleos de processamento; (c) oito máquinas e um núcleo de processamento cada.
82
As pequenas barras nos gráficos da Figura 5.11 representam o desvio
padrão ao redor da média de tempo das 10 execução de cada complexo dentro
de um mesmo job, uma vez que cada job contém 10 repetições de re-docking
com cada complexo. Conforme se pode observar nestes gráficos o desvio
padrão no tempo de execução das cópias foi baixo em relação à média do
conjunto de cópias de execução de cada cálculo de docking realizado nos
complexos ligante-receptor. Isto indica que estes cálculos de docking
realizados nestas configurações (“setup”) do programa AutoDock Vina parecem
ser significativamente reprodutíveis, particularmente no que diz respeito à sua
demanda computacional. Isto também pode ser observado nos cálculos com
oito máquinas (Tabela 14) (Figura 5.11c) onde também ocorreu um desvio
padrão baixo em relação à média do conjunto de cópias de execução de cada
cálculo de docking realizado nos complexos ligante-receptor. Neste cálculo de
docking com oito máquinas há uma grande chance de que as cópias de
execução de cada cálculo tenham sido realizadas por máquinas diferentes,
reforçando ainda mais esta questão da reprodutibilidade da demanda
computacional dos cálculos ou tarefas individuais, sendo realizadas no
ambiente de grid computacional.
Acredita-se que a configuração dos parâmetros seed e exhaustiveness
tornaram o cálculo reprodutível em demanda computacional. O parâmetro seed
(semente inicial para o gerador de números aleatórios) é responsável por
determinar a maneira com que o procedimento de docking inicia sua busca. Ao
se configurar um valor fixo para este parâmetro, o algoritmo genético sempre
começa sua busca da mesma maneira e, desta forma, tende a um mesmo
83
tempo de execução. O parâmetro exhaustiveness é responsável pela etapa de
refinamento parcial dos cálculos individuais do AutoDock Vina. Ao aumentar
este valor para 16 (o dobro do valor padrão) estes cálculos de docking
tornaram-se mais robustos. Isso ajudou a tornar o tempo de execução
reprodutível, uma vez que, quanto maior o número de procedimentos
realizados em cada cálculo de docking, maiores as chances destes cálculos
convergirem para o mesmo tempo de execução.
Figura 5.12 – Fator de aceleração do desempenho, a nivel de núcleos de
processamento dos cálculos individuais de docking no AutoDock Vina, ao utilizar os oito
núcleos de processamento em relação a utilizar apenas um núcleo de processamento. A linha
vermelha representa o valor médio de aceleração do desempenho.
84
Tomando por base o que foi observado no estudo original do AutoDock
Vina (TROTT; OLSON, 2010), onde também não foi obtida a aceleração de
desempenho ideal de oito vezes (com oito núcleos de processamento),
comparado com o cálculo utilizando apenas um núcleo de processamento. O
valor de aceleração médio com oito núcleos de processamento, relatado nesta
referência bibliográfica (TROTT; OLSON, 2010) é de 7,25 vezes (gráfico 5 da
página 459). Nos testes realizados neste presente trabalho, a aceleração do
desempenho variou entre 4,02 a 7,38 vezes mais rápido quando comparado
com o cálculo utilizando apenas um núcleo de processamento (ver Figura
5.12). Acredita-se que esta diferença em relação ao estudo do AutoDock Vina
tenha ocorrido devido a diferenças de configuração das máquinas (a nível de
software e de hardware) utilizadas neste estudo, em comparação com as
configurações utilizadas no estudo original do AutoDock Vina. Novamente,
cabe aqui ressaltar que a capacidade de paralelização interna do programa
AutoDock Vina não foi o objetivo central deste projeto de mestrado, uma vez
que este programa foi desenvolvido por terceiros, mas a principal tarefa deste
presente trabalho é medir o ganho de desempenho proveniente do emprego da
computação distribuída em um ambiente de grid computacional.
5.2.2.2 Resultados da reordenamento da sequência de tarefas no job
Com o intuito de verificar se a ordem em que os cálculos individuais de
docking são realizados influencia o tempo total de execução do job (conjunto
de cálculos), testaram-se outras formas de ordenamento destes cálculos de
docking. Estes ordenamentos foram realizados levando-se em consideração a
85
complexidade ou a demanda computacional dos cálculos, tanto em ordem
crescente quanto decrescente, além de ordens aleatórias (Figura 5.13). Os
tempos totais de execução destes jobs foram comparados com o mesmo
ordenamento utilizado para os testes padrões de desempenho (ordem
alfabética dos nomes dos complexos, ligante + receptor). Cada teste de
ordenamento foi repetido cinco vezes. Na ordem aleatória, foram gerados cinco
jobs contendo ordens aleatórias diferentes entre si. Todos os cálculos da
Tabela 15 foram realizados em oito máquinas utilizando todos os oito núcleos
de processamento de cada máquina, com o programa AutoDock Vina.
Tabela 15 – Tempos de execução dos cálculos utilizando diferentes sequências de
ordenamento das tarefas individuais (docking).
# Ordem aleatória
Ordem alfabética
Ordem crescente
Ordem decrescente
1 2513 2823 3088 3093
2 2589 2847 3089 3155
3 2863 2798 3026 3103
4 2547 2813 3068 3067
5 2523 2819 3017 3085
Média 2607 2820 3058 3101
Desvio Padrão 146 18 34 33
Como os testes em ordem alfabética já tinham sido realizados por
padrão, já havia ciência sobre a demanda computacional ou sobre a
complexidade de cada um dos complexos (ligante + receptor), portanto foi
possível fazer um ordenamento neste sentido. No ordenamento crescente de
complexidade, os cálculos com maior complexidade ficaram no final. Ao utilizar
86
esta forma de ordenamento observou-se uma perda global de desempenho
durante a execução do job (conjunto de cálculos).
Figura 5.13 – Desempenho ao reordenar a sequência dos cálculos individuais de docking. O
eixo das ordenadas representa o tempo em segundos, enquanto o eixo das abscissas
representa as 5 repetições de cada teste.
Acredita-se que neste caso, durante os últimos cálculos, as máquinas
que já concluíram seus cálculos permanecem ociosas a espera que as
máquinas restantes finalizem os últimos cálculos, que são os mais demorados
(de maior complexidade ou demanda computacional), afetando assim o
desempenho do grid computacional. Curiosamente, ao contrário do que se
esperava encontrar, o ordenamento decrescente, ou seja, através da
diminuição do nível de complexidade a cada cálculo, também tornou o conjunto
87
de cálculos um pouco mais lento, como um todo. Vale ressaltar que, como não
há como saber a demanda computacional de cada cálculo de docking antes
mesmo de executá-los, estes tipos de ordenamentos por nível de complexidade
são inviáveis de serem implementados e utilizados na prática, mesmo sabendo
que há uma correlação conhecida entre o tempo de cálculo (ou a complexidade
computacional) e o tamanho das moléculas e do sítio ativo, além do número de
graus de liberdade envolvidos.
Observa-se que, com exceção do terceiro dos cinco testes, os cálculos
com o ordenamento aleatório obtiveram um tempo de execução melhor do que
o ordenamento alfabético padrão. Desta forma, para melhor analisar o efeito do
ordenamento aleatório no desempenho dos cálculos de docking no ambiente
de grid computacional, foram gerados (utilizando os mesmos 500 cálculos de
docking do job original) mais dez jobs aleatórios distintos entre si, ou seja, em
ordens diferentes, e realizados (Tabela 16) (Figura 5.14) em uma máquina
utilizando todos os oito núcleos de processamento (M1C8) e em oito máquinas
utilizando todos os oito núcleos de processamento (M8C8).
Tabela 16 – Tempos de execução dos jobs aleatórios, em segundos.
# Job Aleatório
M1C8 M8C8
1 24110 2846
2 24078 2830
3 24045 2840
4 24102 2837
5 24111 2842
6 23977 2875
7 21402 2859
8 20948 2871
9 20381 2817
10 20630 2887
Média 22778 2850
Desvio Padrão 1688 22
88
Pode-se observar na Figura 5.14 o tempo de execução de dez jobs
(conjunto de cálculos) contendo ordens aleatórias distintas realizados em uma
máquina e também em oito máquinas, utilizando todos os oito núcleos de
processamento de cada máquina, em ambos os casos. Observa-se neste
gráfico que a diferença entre o tempo de execução destes cálculos foi baixo,
em relação a média de tempo total de execução do job. Isto indica que estes
cálculos realizados com ordens aleatórias distintas não diferem
significativamente entre si, no que diz respeito à sua demanda computacional
e, consequentemente, não apresentam diferenças importantes no tempo de
execução total do conjunto de cálculos.
Figura 5.14 – Gráficos do desempenho dos 10 ordenamentos aleatórios. O M1C8 se refere a
uma máquina utilizando oito núcleos de processamento enquanto o M8C8 a oito máquinas
utilizando oito núcleos de processamento.
89
Com estes testes adicionais com o ordenamento aleatório, obteve-se,
em geral, um desempenho semelhante ao ordenamento alfabético. Isso se
deve ao fato que, tratando-se de complexidade, o ordenamento alfabético
também é aleatório. Estes ordenamentos não sobrecarregaram nem
subutilizaram o ambiente de grid computacional, por isso foram obtidos
melhores desempenhos globais do grid computacional usando-se estes
ordenamentos. Desta forma, pode-se observar que o balanceamento da
demanda computacional é mais benéfico para o desempenho do ambiente de
grid computacional, controlado pelo GriDoMol, do que a concentração dos
cálculos de docking baseando-se em sua complexidade.
90
6 CONCLUSÕES
Neste presente trabalho, observou-se alguns fatores que causam o
aumento de desempenho no ambiente de grid computacional. Isto se deve por
causa da ocorrência simultânea das fases de processamento de dados,
transferência de arquivos e comunicações neste sistema distribuído, mesmo
que ocorrendo em fases diferentes. Por exemplo, se uma determinada máquina
está na fase de transferência de arquivos, enquanto a outra máquina está na
fase de processamento de dados, faz com que o tempo gasto na execução em
paralelo destas fases seja contado apenas uma vez, reduzindo
consideravelmente o tempo necessário para concluir um determinado número
de tarefas em comparação com o caso em que estas fases estão sendo
realizadas sequencialmente em uma única máquina, onde o tempo gasto na
execução sequencial destas fases é sempre cumulativo.
Por outro lado, a ociosidade nas fases de processamento de dados,
transferência de arquivos, e comunicação entre os componentes representa
algumas das limitações encontradas neste tipo de sistema distribuido. A
ociosidade na fase de processamento de dados acontece quando há mais
máquinas disponíveis do que as tarefas a serem executadas. Por exemplo, ao
realizar as últimas três tarefas em um ambiente de grid computacional
contendo 10 máquinas, sete destas máquinas estarão ociososas aguardando
as máquinas restantes terminarem estas últimas tarefas. Também observa-se
ociosidade durante as fases de transferência de arquivos e comunicação no
ambiente de grid computacional, quando comparado com uma execução em
91
apenas uma máquina, umas vez que neste último caso, os arquivos já estão
disponibilizados na máquina, eliminando assim o tempo gasto com estas fases.
Mesmo levando em conta estas limitações mencionadas acima, o
aumento de desempenho obtido utilizando as estratégias de paralelismo, no
nível de máquinas do grid computacional, no nível de núcleos de
processamento (AutoDock Vina) e no nível de instâncias de execução
(AutoDock), foi de 33 e 34 vezes mais rápido do que utilizar apenas uma
máquina e um núcleo de processamento para o AutoDock e AutoDock Vina,
respectivamente. Desta forma, o tempo necessário para a realização de 500
tarefas de docking molecular foi reduzido em cerca de 97%, em comparação
com o tempo necessário quando não é utilizada qualquer estratégia de
paralelismo, ou de computação distribuída. Vale ressaltar que este ganho de
desempenho é praticamente linear e, ao adicionar mais máquinas ao ambiente
de grid computacional, é possível obter desempenhos ainda melhores de
redução de tempo total para a realização do job completo (múltiplas tarefas).
Assim, pode-se concluir que o esforço de implementação do programa
GriDoMol, permitindo a utilização dos recursos de computação distribuída
ofertados pelo ambiente de grid computacional OurGrid, em conjunto com os
programas AutoDock e AutoDock Vina, alcançou seu objetivo principal de
aumentar o desempenho computacional, permitindo a realização de um
conjunto grande de tarefas individuais (“BoT”) em uma pequena fração do
tempo (cerca de 3%) que seria necessário para realizar o mesmo conjunto de
tarefas em apenas um computador, de maneira sequencial.
92
7 PERSPECTIVAS
Embora tenha sido desenvolvida neste trabalho uma plataforma para
execução de cálculos de docking molecular de forma distribuída, há espaço
para inclusão de ferramentas de preparação de moléculas e de pós analise.
Algumas destas possibilidades são:
Contemplar mais programas para docking molecular na interface do
GriDoMol.
Utilizar mais rotinas computacionais (scripts) presentes no AutoDock Tools
para possibilitar a opção de preparação automatizada das moléculas que
serão utilizadas nos cálculos de docking molecular.
Oferecer mais opções de interação com GriDoMol através de interfaces,
como, por exemplo, aplicação web e aplicativo para plataforma Android.
Permitir a realização de analise pós-docking, utilizando ferramentas
disponíveis na maquina do usuário.
Possibilitar a realização de refinamento dos resultados, como, por exemplo,
utilizar funções de pontuação (score) alternativas para as soluções de
docking molecular, dinâmica molecular e otimização de geometria.
Possibilitar que o usuário escolha, diretamente da internet, as moléculas
(ligantes e receptores) que serão utilizadas na realização de docking
molecular, como, por exemplo, através de códigos PDB.
93
8 REFERÊNCIAS
ABREU, R. M. V.; FROUFE, H. J. C.; QUEIROZ, M.; FERREIRA, I. MOLA: a bootable, self-
configuring system for virtual screening using AutoDock4/Vina on computer clusters. Journal of
Cheminformatics, v. 2, 2010. ISSN 1758-2946.
ADT (2012). Disponível em: <http://autodock.scripps.edu/resources/adt>. Acessado em
Setembro de 2012.
ANDRADE, N.; CIRNE, W.; BRASILEIRO, F.; ROISENBERG, P. OurGrid: An approach to easily assemble grids with equitable resource sharing. In: FEITELSON, D.;RUDOLPH, L., et al (Ed.). Job Scheduling Strategies for Parallel Processing. Berlin: Springer-Verlag Berlin, v.2862, 2003. p.61-86. (Lecture Notes in Computer Science). ISBN 0302-9743
ARAUJO, E.; CIRNE, W.; WAGNER, G.; OLIVEIRA, N.; SOUZA, E. P.; GALVAO, C. O.; MARTINS, E. S. The SegHidro experience: Using the grid to empower a hydro-meteorological scientific network. Los Alamitos: Ieee Computer Soc, 2005. 64-71 ISBN 0-7695-2448-6.
AutoDock (2012). Disponível em <http://autodock.scripps.edu/>. Acessado em Novembro de 2012.
BUYYA, R.; BRANSON, K.; GIDDY, J.; ABRAMSON, D. The virtual laboratory: A toolset for utilising the world-wide grid to design drugs. Los Alamitos: Ieee Computer Soc, 2002. 278-
279 ISBN 0-7695-1582-7.
CASE, D. A.; CHEATHAM, T. E.; DARDEN, T.; GOHLKE, H.; LUO, R.; MERZ, K. M.;
ONUFRIEV, A.; SIMMERLING, C.; WANG, B.; WOODS, R. J. The Amber biomolecular
simulation programs. Journal of Computational Chemistry, v. 26, n. 16, p. 1668-1688, Dec
2005. ISSN 0192-8651.
Choosing BOINC projects (2012). Disponível em <http://boinc.berkeley.edu/projects.php>.
Acessado em Novembro de 2012.
CIRNE, W. (2002). Grids Computacionais Arquiteturas, Tecnologias e Aplicações. In Proceedings of the 3rd Workshop on High Performance Computing Systems (WSCAD’2002), Vitória, Brazil.
CUDA (2012). Disponível em <http://www.nvidia.com/object/cuda_home_new.html>. Acessado em Novembro de 2012.
HTCondor (2013). Disponível em <http://research.cs.wisc.edu/htcondor/>. Acessado em
Fevereiro de 2013.
DE VRIES, S. J.; VAN DIJK, M.; BONVIN, A. The HADDOCK web server for data-driven biomolecular docking. Nature Protocols, v. 5, n. 5, p. 883-897, 2010. ISSN 1754-2189.
DELANO, W. L. Use of PYMOL as a communications tool for molecular science. Abstracts of Papers of the American Chemical Society, v. 228, p. U313-U314, Aug 2004. ISSN 0065-7727.
DELANO, W. L. PyMOL molecular viewer: Updates and refinements. Abstracts of Papers of the American Chemical Society, v. 238, Aug 2009. ISSN 0065-7727.
94
DESJARLAIS, R. L.; SEIBEL, G. L.; KUNTZ, I. D.; FURTH, P. S.; ALVAREZ, J. C.; DEMONTELLANO, P. R. O.; DECAMP, D. L.; BABE, L. M.; CRAIK, C. S. STRUCTURE-BASED DESIGN OF NONPEPTIDE INHIBITORS SPECIFIC FOR THE HUMAN IMMUNODEFICIENCY VIRUS-1 PROTEASE. Proceedings of the National Academy of Sciences of the United States of America, v. 87, n. 17, p. 6644-6648, Sep 1990. ISSN 0027-8424.
DOMINGUEZ, C.; BOELENS, R.; BONVIN, A. HADDOCK: A protein-protein docking approach based on biochemical or biophysical information. Journal of the American Chemical Society,
v. 125, n. 7, p. 1731-1737, Feb 2003. ISSN 0002-7863.
DURRANT, J. D.; MCCAMMON, J. A. BINANA: A novel algorithm for ligand-binding characterization. Journal of Molecular Graphics & Modelling, v. 29, n. 6, p. 888-893, Apr 2011. ISSN 1093-3263.
e-NMR (2012). Disponível em: <http://www.enmr.eu/>. Acessado em Outubro de 2012.
Ejabberd (2012). Disponível em: <http://www.ejabberd.im/>. Acessado em Outubro de 2012.
FISCHER, E. (1894). "Einfluss der Configuration auf die Wirkung der Enzyme". Ber. Dt.
Chem. Ges. 27: 2985–2993.
FOSTER, I. (2002). What is the grid? A three point checklist.
GELDENHUYS, W. J.; GAASCH, K. E.; WATSON, M.; ALLEN, D. D.; VAN DER SCHYF, C. J. Optimizing the use of open-source software applications in drug discovery. Drug Discov Today, v. 11, n. 3-4, p. 127-32, Feb 2006. ISSN 1359-6446
GIUPPONI, G.; HARVEY, M. J.; DE FABRITIIS, G. The impact of accelerator processors for high-throughput molecular modeling and simulation. Drug Discovery Today, v. 13, n. 23-24, p.
1052-1058, Dec 2008. ISSN 1359-6446.
GOODSELL, D. S.; MORRIS, G. M.; OLSON, A. J. Automated docking of flexible ligands: Applications of AutoDock. Journal of Molecular Recognition, v. 9, n. 1, p. 1-5, Jan-Feb 1996. ISSN 0952-3499.
HESS, B.; KUTZNER, C.; VAN DER SPOEL, D.; LINDAHL, E. GROMACS 4: Algorithms for highly efficient, load-balanced, and scalable molecular simulation. Journal of Chemical Theory and Computation, v. 4, n. 3, p. 435-447, Mar 2008. ISSN 1549-9618.
JIANG, X. H.; KUMAR, K.; HU, X.; WALLQVIST, A.; REIFMAN, J. DOVIS 2.0: an efficient and easy to use parallel virtual screening tool based on AutoDock 4.0. Chemistry Central Journal, v. 2, Sep 2008. ISSN 1752-153X.
KELLENBERGER, E.; RODRIGO, J.; MULLER, P.; ROGNAN, D. Comparative evaluation of
eight docking tools for docking and virtual screening accuracy. Proteins-Structure Function
and Bioinformatics, v. 57, n. 2, p. 225-242, Nov 2004. ISSN 0887-3585.
KOSHLAND, D. E. APPLICATION OF A THEORY OF ENZYME SPECIFICITY TO PROTEIN
SYNTHESIS. Proceedings of the National Academy of Sciences of the United States of
America, v. 44, n. 2, p. 98-104, 1958. ISSN 0027-8424.
LAM/MPI Parallel Computing (2012). Disponível em <http://www.lam-mpi.org/>. Acessado em
Novembro de 2012.
95
LENGAUER, T.; RAREY, M. Computational methods for biomolecular docking. Current Opinion in Structural Biology, v. 6, n. 3, p. 402-406, Jun 1996. ISSN 0959-440X.
Linpack (2013). Disponível em <http://www.netlib.org/linpack/>. Acessado em Fevereiro de
2013.
MATTOS, G.; FORMIGA, A. D.; LINS, R. D.; MARTINS, F. M. J.; ACM. BigBatch: A
Document Processing Platform for Clusters and Grids. New York: Assoc Computing
Machinery, 2008. 434-441
MCGEE, P. (2005). Modeling success with in silico tools. Drug Discovery & Development. 8,
24.
MDL Isis Draw (2012). Disponível em: <http://mdl-isis-draw.software.informer .com/>. Acessado
em Outubro de 2012.
Mingw (2013). Disponível em: <www.mingw.org/>. Acessado em Fevereiro de 2013.
MORRIS, G. M.; HUEY, R.; LINDSTROM, W.; SANNER, M. F.; BELEW, R. K.; GOODSELL, D.
S.; OLSON, A. J. AutoDock4 and AutoDockTools4: Automated Docking with Selective Receptor
Flexibility. Journal of Computational Chemistry, v. 30, n. 16, p. 2785-2791, Dec 2009. ISSN
0192-8651.
MPICH2 : High-performance and widely portable MPI (2012). Disponível em
<http://www.mcs.anl.gov/research/projects/mpich2/>. Acessado em Novembro de 2012.
NSF - National Science Foundation (2012). Disponível em: <http://www.nsf.gov/>. Acessado
em Outubro de 2012.
OpenFire (2012). Disponível em: <http://www.igniterealtime.org/projects/ openfire/>. Acessado
em Outubro de 2012.
OurGrid (2012). Disponível em: <http://www.ourgrid.org/>. Acessado em Outubro de 2012.
OurGrid Portal (2012). Disponível em: <http://portal.ourgrid.org/>. Acessado em Outubro de
2012.
PAPPALARDO, F.; HALLING-BROWN, M. D.; RAPIN, N.; ZHANG, P.; ALEMANI, D.;
EMERSON, A.; PACI, P.; DUROUX, P.; PENNISI, M.; PALLADINI, A.; MIOTTO, O.;
CHURCHILL, D.; ROSSI, E.; SHEPHERD, A. J.; MOSS, D. S.; CASTIGLIONE, F.;
BERNASCHI, M.; LEFRANC, M. P.; BRUNAK, S.; MOTTA, S.; LOLLINI, P. L.; BASFORD, K.
E.; BRUSIC, V. ImmunoGrid, an integrative environment for large-scale simulation of the
immune system for vaccine discovery, design and optimization. Briefings in Bioinformatics, v.
10, n. 3, p. 330-340, May 2009. ISSN 1467-5463.
PDB Database (2012). Disponível em: <http://www.pdb.org>. Acessado em Outubro de 2012.
96
PEARLMAN, D. A.; CASE, D. A.; CALDWELL, J. W.; ROSS, W. S.; CHEATHAM, T. E.; DEBOLT, S.; FERGUSON, D.; SEIBEL, G.; KOLLMAN, P. AMBER, A PACKAGE OF COMPUTER-PROGRAMS FOR APPLYING MOLECULAR MECHANICS, NORMAL-MODE ANALYSIS, MOLECULAR-DYNAMICS AND FREE-ENERGY CALCULATIONS TO SIMULATE THE STRUCTURAL AND ENERGETIC PROPERTIES OF MOLECULES. Computer Physics Communications, v. 91, n. 1-3, p. 1-41, Sep 1995. ISSN 0010-4655.
PURANEN, J. S.; VAINIO, M. J.; JOHNSON, M. S. Accurate Conformation-Dependent Molecular Electrostatic Potentials for High-Throughput In Silico Drug Discovery. Journal of Computational Chemistry, v. 31, n. 8, p. 1722-1732, Jun 2010. ISSN 0192-8651.
QT – A cross-platform aplication and UI framework (2012). Disponível em:
<http://qt.digia.com/>. Acessado em Julho de 2012.
ROH, Y.; LEE, J.; PARK, S.; KIM, J.-I. A molecular docking system using CUDA.
Proceedings of the 2009 International Conference on Hybrid Information Technology. Daejeon, Korea: ACM: 28-33 p. 2009.
SADASHIV, N.; KUMAR, S. M. D. Cluster, grid and cloud computing: A detailed comparison. Computer Science & Education (ICCSE), 2011 6th International Conference on, 2011. 3-5 Aug. 2011. p.477-482.
SAYLE, R. A.; MILNERWHITE, E. J. RASMOL - BIOMOLECULAR GRAPHICS FOR ALL. Trends in Biochemical Sciences, v. 20, n. 9, p. 374-376, Sep 1995. ISSN 0968-0004.
SCHOLLMEIER, R. A definition of Peer-to-Peer networking for the classification of Peer-to-Peer architectures and applications. Los Alamitos: Ieee Computer Soc, 2002. 101-102 ISBN 0-7695-1503-7.
Scripps Research Institute (2012). Disponível em: <http://www.scripps.edu/>. Acessado em
Outubro de 2012.
SLOCCount (2012). Disponível em <http://www.dwheeler.com/sloccount/>. Acessado em
Novembro de 2012.
SLOCCount User’s Guide (2012). Disponível em <http://www.dwheeler.com/sloccount/
sloccount.html>. Acessado em Novembro de 2012.
SMITH, R. Grid Computing: A Brief Technology Analysis.
SQUYRES, J. M.; LUMSDAINE, A. A component architecture for LAM/MPI. In: DONGARRA, J.;LAFORENZA, D., et al (Ed.). Recent Advances in Parallel Virtual Machine and Message Passing Interface. Berlin: Springer-Verlag Berlin, v.2840, 2003. p.379-387. (Lecture Notes in
Computer Science). ISBN 0302-9743.
SUKHWANI, B.; HERBORDT, M. C. Fast binding site mapping using GPUs and CUDA. Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW), 2010 IEEE International Symposium on, 2010. 19-23 April 2010. p.1-8.
The Linux Kernel: It’s Worth More (2012). Disponível em: <http://www.
dwheeler.com/essays/linux-kernel-cost.html>. Acessado em Novembro de 2012.
TOP500 Supercomputers (2012). Disponível em <www.top500.org/>. Acessado em Novembro
de 2012.
97
TROTT, O.; OLSON, A. J. Software News and Update AutoDock Vina: Improving the Speed and Accuracy of Docking with a New Scoring Function, Efficient Optimization, and Multithreading. Journal of Computational Chemistry, v. 31, n. 2, p. 455-461, Jan 2010. ISSN
0192-8651.
VAINIO, M. J.; JOHNSON, M. S. Generating conformer ensembles using a multiobjective genetic algorithm. Journal of Chemical Information and Modeling, v. 47, n. 6, p. 2462-2474, Nov-Dec 2007. ISSN 1549-9596.
VAQUE, M.; ARDREVOL, A.; BLADE, C.; SALVADO, M. J.; BLAY, M.; FERNANDEZ-LARREA, J.; AROLA, L.; PUJADAS, G. Protein-ligand docking: A review of recent advances and future perspectives. Current Pharmaceutical Analysis, v. 4, n. 1, p. 1-19, Feb 2008. ISSN 1573-4129.
WLODAWER, A. Rational approach to AIDS drug design through structural biology. Annual Review of Medicine, v. 53, p. 595-614, 2002. ISSN 0066-4219.
WOODS, C. J.; NG, M. H.; JOHNSTON, S.; MURDOCK, S. E.; WU, B.; TAI, K.; FANGOHR, H.;
JEFFREYS, P.; COX, S.; FREY, J. G.; SANSOM, M. S. P.; ESSEX, J. W. Grid computing and
biomolecular simulation. Philosophical Transactions of the Royal Society a-Mathematical
Physical and Engineering Sciences, v. 363, n. 1833, p. 2017-2035, Aug 2005. ISSN 1364-
503X.
World Community Grid (2012). Disponível em <http://www.worldcommunitygrid. org>. Acessado
em Outubro de 2012.
World Community Grid – Say No to Schistosoma (2012). Disponível em <http://
www.worldcommunitygrid.org/research/sn2s/overview.do>. Acessado em Outubro de 2012.
World Community Grid - GO Fight Against Malaria (2012). Disponível em <http:
//www.worldcommunitygrid.org/research/gfam/overview.do>. Acessado em Outubro de 2012.
World Community Grid - Drug Search for Leishmaniasis (2012). Disponível em
<http://www.worldcommunitygrid.org/research/dsfl/overview.do>. Acessado em Outubro de
2012.
XDrawChem (2012). Disponível em: <http://xdrawchem.sourceforge.net/>. Acessado em
Outubro de 2012.
XSede (2012). Disponível em: <https://www.xsede.org/>. Acessado em Outubro de 2012.
ZHANG, S. X.; KUMAR, K.; JIANG, X. H.; WALLQVIST, A.; REIFMAN, J. DOVIS: an
implementation for high-throughput virtual screening using AutoDock. Bmc Bioinformatics, v.
9, Feb 2008. ISSN 1471-2105.
98
9 APENDICE A
job : label : Autogrid
task :
init : if (os == windows) then store autogrid4.exe autogrid4.exe store autogrid.bat autogrid.bat endif if (os == linux) then store autogrid4 autogrid4 store autogrid.sh autogrid.sh endif put C:/LQTM/mol/receptors/1ABE.pdbqt 1ABE.pdbqt put C:/LQTM/mol/receptors/1ABE.gpf 1ABE.gpf
remote : autogrid.sh $STORAGE 1ABE.gpf
final : get maps.zip 1ABE_maps.zip
get log_grid.txt 1ABE_autogrid_log.txt
task :
( . . . )
Exemplo resumido de um job description file (jdf) gerado para a etapa do AutoGrid.
job : label : 1x_autodock
task : init : if (os == windows) then store autodock4.exe autodock4.exe store autodock.bat autodock.bat endif if (os == linux) then store autodock4 autodock4 store autodock.sh autodock.sh endif put 1ABE_maps.zip maps.zip put C:/LQTM/mol/receptors/1ABE.pdbqt 1ABE.pdbqt put C:/LQTM/mol/ligands/1ABE-lig.pdbqt 1ABE-lig.pdbqt put C:/LQTM/mol/ligands/1ABE-lig_1ABE.dpf 1ABE-lig_1ABE.dpf
remote : autodock.sh $STORAGE 1ABE-lig_1ABE.dpf
final : get log_dock.dlg 1ABE-lig_1ABE1.dlg
task :
( . . . )
Exemplo resumido de um job description file (jdf) gerado para a execução do programa
AutoDock no ambiente de grid computacional utilizando uma instancia de execução do
programa.
99
job : label : 8x_autodock task : init : if (os == windows) then store autodock4.exe autodock4.exe store 8autodock.bat 8autodock.bat endif if (os == linux) then store autodock4 autodock4 store 8autodock.sh 8autodock.sh endif put 1ABE_maps.zip maps1.zip put C:/LQTM/mol/receptors/1ABE.pdbqt 1ABE.pdbqt put C:/LQTM/mol/ligands/1ABE-lig.pdbqt 1ABE-lig.pdbqt put 1ABE-lig_1ABE.dpf 1ABE-lig_1ABE.dpf put 1ACJ_maps.zip maps2.zip put C:/LQTM/mol/receptors/1ACJ.pdbqt 1ACJ.pdbqt put C:/LQTM/mol/ligands/1ACJ-lig.pdbqt 1ACJ-lig.pdbqt put 1ACJ-lig_1ACJ.dpf 1ACJ-lig_1ACJ.dpf put 1ACM_maps.zip maps3.zip put C:/LQTM/mol/receptors/1ACM.pdbqt 1ACM.pdbqt put C:/LQTM/mol/ligands/1ACM-lig.pdbqt 1ACM-lig.pdbqt put 1ACM-lig_1ACM.dpf 1ACM-lig_1ACM.dpf put 1AHA_maps.zip maps4.zip put C:/LQTM/mol/receptors/1AHA.pdbqt 1AHA.pdbqt put C:/LQTM/mol/ligands/1AHA-lig.pdbqt 1AHA-lig.pdbqt put 1AHA-lig_1AHA.dpf 1AHA-lig_1AHA.dpf put 1CBS_maps.zip maps5.zip put C:/LQTM/mol/receptors/1CBS.pdbqt 1CBS.pdbqt put C:/LQTM/mol/ligands/1CBS-lig.pdbqt 1CBS-lig.pdbqt put 1CBS-lig_1CBS.dpf 1CBS-lig_1CBS.dpf put 1COM_maps.zip maps6.zip put C:/LQTM/mol/receptors/1COM.pdbqt 1COM.pdbqt put C:/LQTM/mol/ligands/1COM-lig.pdbqt 1COM-lig.pdbqt put 1COM-lig_1COM.dpf 1COM-lig_1COM.dpf put 1DBB_maps.zip maps7.zip put C:/LQTM/mol/receptors/1DBB.pdbqt 1DBB.pdbqt put C:/LQTM/mol/ligands/1DBB-lig.pdbqt 1DBB-lig.pdbqt put 1DBB-lig_1DBB.dpf 1DBB-lig_1DBB.dpf put 1EED_maps.zip maps8.zip put C:/LQTM/mol/receptors/1EED.pdbqt 1EED.pdbqt put C:/LQTM/mol/ligands/1EED-lig.pdbqt 1EED-lig.pdbqt put 1EED-lig_1EED.dpf 1EED-lig_1EED.dpf remote : 8autodock.sh $STORAGE 1ABE-lig_1ABE.dpf 1ACJ-lig_1ACJ.dpf 1ACM-lig_1ACM.dpf 1AHA-lig_1AHA.dpf 1CBS-lig_1CBS.dpf 1COM-lig_1COM.dpf 1DBB-lig_1DBB.dpf 1EED-lig_1EED.dpf
final : get log_dock1.dlg 1ABE-lig_1ABE1.dlg get log_dock2.dlg 1ACJ-lig_1ACJ1.dlg get log_dock3.dlg 1ACM-lig_1ACM1.dlg get log_dock4.dlg 1AHA-lig_1AHA1.dlg get log_dock5.dlg 1CBS-lig_1CBS1.dlg get log_dock6.dlg 1COM-lig_1COM1.dlg get log_dock7.dlg 1DBB-lig_1DBB1.dlg get log_dock8.dlg 1EED-lig_1EED1.dlg task :
( . . . )
Exemplo resumido de um job description file (jdf) gerado para a execução do programa
AutoDock no ambiente de grid computacional utilizando oito instancias de execução do
programa.
100
#!/bin/bash
chmod +x $1/autogrid4
($1/autogrid4 -l log_grid.txt -p $2) && wait
zip maps.zip *.map *.maps.*
Rotina computacional em Shell Script para a execução do AutoGrid.
#!/bin/bash
chmod +x maps.zip
unzip -o maps.zip
chmod +x $1/autodock4
$1/autodock4 -l log_dock.dlg -p $2 &
for pid in `jobs -p`
do
wait $pid
done
Rotina computacional em Shell Script para a execução de uma instancia de execução do
programa AutoDock em cada máquina.
101
#!/bin/bash
chmod +x maps1.zip
chmod +x maps2.zip
( . . . )
chmod +x maps8.zip
unzip -o maps1.zip
unzip -o maps2.zip
( . . . )
unzip -o maps8.zip
chmod +x $1/autodock4
$1/autodock4 -l log_dock1.dlg -p $2 & $1/autodock4 -l log_dock2.dlg -p $3 & $1/autodock4 -l log_dock3.dlg -p $4 & $1/autodock4 -l log_dock4.dlg -p $5 & $1/autodock4 -l log_dock5.dlg -p $6 & $1/autodock4 -l log_dock6.dlg -p $7 & $1/autodock4 -l log_dock7.dlg -p $8 & $1/autodock4 -l log_dock8.dlg -p $9 &
for pid in `jobs -p`
do
wait $pid
done
Rotina computacional em Shell Script para a execução de oito instancias de execução do
programa AutoDock simultaneamente em cada máquina.
102
job : label : vina task : init : if (os == windows) then store vina.exe vina.exe endif if (os == linux) then store vina vina endif put C:/ourgrid/out/1ABE/1ABE.pdbqt 1ABE.pdbqt
put C:/LQTM/mol1ABE/1ABE-lig.pdbqt 1ABE-lig.pdbqt
remote : time -p $STORAGE/vina --receptor 1ABE.pdbqt --ligand 1ABE-lig.pdbqt --cpu 8 --seed 495829104 --exhaustiveness 16 --center_x 13.208 --center_y 58.246 --center_z 52.173 --size_x 12 --size_y 12 --size_z 12 --out 1ABE-1ABE-lig-1.out 2> 1ABE-1.log
final : get 1ABE-1ABE-lig-1.out 1ABE-1ABE-lig-1.out
get 1ABE-1.log 1ABE-1.log
task :
( . . .)
Exemplo resumido de um job description file (jdf) gerado para a execução do programa
AutoDock Vina no ambiente de grid computacional.
# This file was generated automatically by GriDoMol.
[Receptors] #path; center_x; center_y; center_z; size_x; size_y; size_z; C:/LQTM/mol/receptors/1ABE.pdbqt;13.208;58.246;52.173;12;12;12; C:/LQTM/mol/receptors/1ACJ.pdbqt;4.226;69.901;65.807;10;8;12; ( . . .)
C:/Dropbox/LQTM/mol/receptors/8GCH.pdbqt;3.092;8.142;17.699;14;14;14;
[Ligands] C:/LQTM/mol/ligands/1ABE-lig.pdbqt C:/LQTM/mol/ligands/1ACJ-lig.pdbqt
( . . . )
C:/LQTM/mol/ligands/8GCH-lig.pdbqt
Exemplo resumido do GriDoMol Settings File (gsf).
103
10 APENDICE B
13-Feb-2013
Dear Prof. Dr. Hernandes:
Your manuscript has been successfully submitted to the
Journal of Chemical Information and Modeling.
Title: "GriDoMol: a multilevel distributed system to speed
up molecular docking calculations"
Authors: Ferreira, Luiz Felipe; Cavalcante, Klaus;
Hernandes, Marcelo
Manuscript ID: ci-2013-001037.
Please reference the above manuscript ID in all future
correspondence or when calling the office for questions. If
there are any changes in your contact information, please
log in to ACS Paragon Plus at
https://acs.manuscriptcentral.com/acs and select "Edit Your
Account" to update that information.
You can view the status of your manuscript by checking your
"Authoring Activity" tab on ACS Paragon Plus after logging
in to https://acs.manuscriptcentral.com/acs.
Thank you for submitting your manuscript to the Journal of
Chemical Information and Modeling.
Sincerely,
Journal of Chemical Information and Modeling Editorial
Office
104
GriDoMol: a multilevel distributed system to
speed up molecular docking calculations
Luiz Felipe G. R. Ferreira, Klaus R. Cavalcante, Marcelo Z. Hernandes*
Department of Pharmaceutical Sciences, Federal University of Pernambuco, Brazil
KEYWORDS:
GriDoMol, distributed computing, computational grids, molecular docking, software.
ABSTRACT:
The use of computers related to drug development in the pharmaceutical area has taken
significant proportions. It is estimated that the use of these methods can reduce the costs
and time spent in the development stage of a new drug up to 50%. This often happens
because the number of molecules that need to be experimentally synthesized and tested
becomes drastically reduced due to the high predictability and reliability of the
theoretical predictions made by computational methods (in silico). The molecular
docking procedure determines if there is favorable interaction energy between two
molecules (ligand and biological or pharmacological target) in order to elucidate the
molecular reasons responsible for the pharmacological potency of these potential drugs.
It happens that these methods may present, sometimes, a high computational demand
when the number of ligands and targets to be tested is high and when there is a need for
higher precision in the predicted numerical results. This work presents the GriDoMol
105
system that performs molecular docking calculations in a computational grid
environment. Its intuitive graphical interface allows the creation of a list of molecular
docking calculations to be performed in parallel at the grid computing environment and
track the progress of each calculation individually. In tests carried out in this analysis,
the time required to perform 500 docking calculations was reduced by up to 97% of the
time required when compared to not using any parallelism strategy or distributed
computing.
Introduction
The process of drug development has acquired a growing number of computational
tools to increase the speed and decrease the costs involved in developing products
related to therapeutic innovation. The use of computers in this area has taken significant
contribution, particularly when applied on Computer-Aided Drug Design (CADD),
where structure and molecular properties are virtually studied. It is estimated that these
methods can reduce the costs and time for the development of a new drug by up to 50%
[1,2]. This happens because, usually, the number of molecules that need to be
synthesized and tested experimentally becomes drastically reduced due to the high
predictability and reliability of computational (in silico) methods, thus shortening the
development time of a new drug.
One of these methods is the molecular docking, that determinates if there is a favorable
interaction between two molecules in order to elucidate the molecular factors that are
responsible for the pharmacological activity of a new potential drug. The docking
procedure searches for a position and orientation that maximizes these intermolecular
interactions between ligands (potential drug molecules) and biological targets
(biomacromolecules, typically). Thus, both molecules (ligand and biological target, also
106
known as receptor) form a complex by structural complementarity and energetic
stabilization, as seen in Figure 1. Nevertheless, these methods present a high
computational demand when used in a huge number of molecules (ligands and
biological targets) to be tested, and also when numerical results with better accuracy are
desired.
Figure 1. Example of a structural complex (PDB code: 1ULB) formed by a receptor
(orange molecule) and its co-crystallized ligand (white molecule). The blue molecule
represents the resulting pose obtained from the molecular docking calculation. (a) A
107
panoramic view with the receptor’s surface, including the co-crystallized ligand and the
docking solution. (b) A detailed view of the receptor’s binding site.
The idea of applying distributed computing technologies, such as computational grids to
assemble virtual laboratories is currently used worldwide in projects of several research
fields [3,4,5], including molecular modeling [6,7]. In this context, it is possible to find
initiatives of studies involving molecular docking being accelerated by powerful
computing infrastructures [8,9,10,11].
There are some examples of projects that use distributed computing to perform
molecular docking in large scale. The Dovis [9] is a system that uses a computer cluster
to perform molecular docking calculations using the AutoDock [12] software. Also,
there is the Haddock [10], which is a computer cluster system that accesses the e-NMR
[13] European grid if more computational cycles are required beyond its computational
processing capacity.
Another example of distributed molecular docking is the MOLA [11] system. It also
uses a computer cluster so as to run molecular docking to large datasets. This system is
assembled through a customized LIVE-CD. It also requires that the other machines
(slave nodes) have the Preboot eXecution Environment (PXE) in order to be booted
from the front end machine (master node). This system uses the AutoDock [12] and
AutoDock Vina [14] molecular docking softwares.
In this way, the total time required for obtaining the final results of this kind of
applications can be significantly reduced, since each molecular docking calculation is
distributed within the computational grid, in a transparent way to the end user, who will
108
have the feeling that the whole process is running on a single machine, while the
computational grid is in charge of distributing and running them optimally through the
integrated system. In order to obtain a unified and intuitive platform able to perform
molecular docking in a distributed environment, this work presents GriDoMol, a
solution that integrates the processing power of a computational grid environment with
an open source and multi-core software for molecular docking. In this paper, it is
presented how much the performance on molecular docking is increased when a system
as GriDoMol, with two levels of distribution (first level at the grid machines schedule
and the second level at the processing cores) is used to perform molecular docking of a
large set of molecules.
Methods
GriDoMol is an integrated system formed by (i) a management module that has the
same name of the solution, (ii) the components (Peer, Broker and Worker) of the
OurGrid platform (v4.2.3) [15], (iii) Openfire server (v3.7.0) [16], a XMPP server used
by OurGrid to provide communication among its components, and (iv) AutoDock Vina
(v1.1.2) [14], a well-known open-source software for molecular docking.
The GriDoMol module was developed using C++ programming language and Qt toolkit
(v4.7.0) [17] to provide a friendly user interface (see Figure 2). This module is
responsible for creating the jobs, submitting them to the grid environment and
monitoring their execution. These jobs are created and exported by using the Job
Definition File (JDF) syntax, which is the file format used to submit jobs in the OurGrid
platform. Each task of the job matches a molecular docking calculation of a pair of
molecules (ligand and receptor), which also includes required input parameters and
information related to the receptor’s binding site.
109
The jobs exported by GriDoMol are scheduled among the grid machines (computers
running the component Worker of the OurGrid platform) that execute the individual
tasks (molecular docking calculations), using the AutoDock Vina software. Since Qt
framework supports the compilation on multiple operational systems, the GriDoMol
software has versions for both Windows and Linux systems.
Figure 2. Main window of the GriDoMol program.
The communication scheme among the components of the GriDoMol system can be
seen in Figure 3. The execution flow starts with an “initial setup” that includes the
preparation of the chosen molecules (ligands and targets) and the conversion of the
input data to the PDBQT file format, adopted by the AutoDock Vina program. All these
initial procedures over the molecules are made by the user with the aid of the AutoDock
Tools [12] software.
110
Figure 3. Communication scheme among the components of the GriDoMol system.
Through the graphical interface of GriDoMol, it’s possible to do the following actions:
i) Set the group of machines that integrates the computational grid by sending the Site
Description File (.SDF) to the Peer component; ii) Create and load a previously created
GriDoMol’s Setup File (.GSF), containing the setup for both receptors and ligands
molecules; iii) Create and submit a Job Description File (.JDF) to the Broker
component. This file contains the tasks of molecular docking calculations to be
performed among the computational grid machines.
After the job submission to the Broker component, it distributes the tasks optimally
through the Worker components available in the computational grid. This availability
checking is performed by the Peer component, which verifies and then selects the idle
resources to the Broker component. Each of these Workers performs the molecular
docking calculation using the AutoDock Vina program. When the task is over, each
Worker sends the results back to the user’s machine. GriDoMol also monitors, in real
111
time, which tasks have been finished and which are still running, giving an overall
progression of the job.
The OurGrid platform [15] was chosen for this work because it is suitable for the
execution of Bag-of-Tasks (BoT) applications, where the tasks have no logical or
temporal dependence among themselves, which is the case of molecular docking
calculations. Also, OurGrid is in continuous development and is being used on others
projects of high performance distributed computing and has a wide range of
applicability [3,4]. All communications among the OurGrid components are made by
the XMPP server Openfire [16]. This server detects and manages the “presence” of the
OurGrid components (if a given component is online and available) allowing the
message exchange among them.
The software used to perform the molecular docking calculations was the AutoDock
Vina [14], due to its support for multiprocessing execution in multiple CPU cores
(which is available on multi-core processors) and higher ease of use if compared to
other available docking solutions. The AutoDock Vina only requires the molecular
structures on the PDBQT file format (for both receptor and ligand) and the binding site
coordinates, both in the three-dimensional space.
The quality of performance results depends directly on the reproducibility of individual
docking calculations. So, this study attempted to map the parameters used by AutoDock
Vina that would influence the reproduction of docking calculations. We concluded that
the AutoDock Vina parameters ‘seed’ and ‘exhaustiveness’ made the calculation
reproducible in terms of computational demand. The seed parameter (initial seed for the
random number generator) is responsible for determining the way in which the docking
procedure begins its search. A fixed value for this parameter was used in all the
112
calculations. The exhaustiveness parameter is responsible for the partial refinement step
of individual calculations within AutoDock Vina. When this value is increased to 16
(twice as much the standard value) these docking calculations become more robust than
usual. These setup adjustments helped to make the execution time reproducible over all
the computations of the docking results.
Results
Comparative tests have been conducted to the proposed grid system in order to measure
the computational performance of running a large set of molecular docking calculations
primarily over the computational grid environment and also taking into account the
CPU multi-core processing, available through the use of AutoDock Vina software.
A grid environment was assembled in our lab using the OurGrid toolkit. The front-end
machine, running GriDoMol to submit and manage the jobs, was an Intel Xeon 2.80
GHz Dual-Core containing 2GB of RAM and running Windows XP. The tasks were
performed in parallel at the homogeneous grid environment, where each grid machine
had two Intel Xeon E5410 Quad-Core 2.33 GHz processors, with 16GB of RAM and
running Ubuntu Linux 10.10.
It was chosen, for performance tests, a set of molecules used by the structural
chemogenomics research group of the Strasbourg University [18]. From the original set,
a subgroup of 50 complexes (receptors and their respective ligands) was selected to
perform the docking calculation tests. The selection of these complexes was done by
removing the complexes that had metal ion or a high number of torsions on the ligand.
The complete list of ligand-target complexes and their respective PDB codes can be
seen in the Table S1 (supplementary material).
113
The impact evaluation over the performance caused by the variation in the number of
machines on the computational grid was carried out through changing the amount of
computers (Workers) involved in the dimensioning of the grid. The number of machines
used for the tests was alternated from 1 to 8 machines so as to try to determine the
performance gain on the computational grid system when more machines are added.
There was also a variation in the level of processing cores used to determine the
multicore impact. Since each grid machine has a total of 8 cores, we used a geometrical
progression (1, 2, 4 and 8 cores) as evaluation parameter, as it’s expected the double of
performance compared to the previous one.
Taking into account the number of machines of the used computational grid and the
need for higher accuracy on the tests, it was included, on each job, ten copies of the 50
complexes generating a total of 500 re-docking tasks per job. Through the possible
combination of configurations among machines (1, 2, 3, 4, 5, 6, 7 and 8) and processor
cores (1, 2, 4 and 8), 32 jobs were executed, totaling 16,000 individual re-docking
calculations tasks carried out within the computational grid. Before each docking
calculation, it was observed a systematic delay of about 10 seconds between the
command used to send the calculation (task) by the GriDoMol program interface, and
the beginning of this calculation at the work machine (Worker). This delay is typically
viewed in distributed systems that use grid architecture and is usually explained by the
initial communications between the components of the grid. The scheduling and
execution of each task within the job is preceded by the discovery and evaluation of
available resources (machines), that is, whether these machines are turned on and
connected to the grid environment, and checking the presence of the minimum
requirements needed to perform the scheduled tasks.
114
The performance results reached with GriDoMol system can be seen in Figure 4. By
increasing the number of machines, the execution time of the 500 docking calculations
approximates the predicted time. Observing the graph of Figure 4, one can notice that
the elapsed and predicted time curves are nearly superimposed to each other. The Table
S2 (supplementary material) presents all performance results used to build the graphs
(Figures 4 and 5).
Figure 4. Performance results of GriDoMol system in terms of number of machines and
elapsed time. The curves with subtitles in the format cN (where N is 1, 2, 4, or 8) mean
the results obtained for each number of processing cores whereas those curves with
subtitles in the form cNp represent the predicted values for these circumstances.
115
Another way to see the performance results is through the system’s speedup data shown
in the Figure 5. This graph presents the performance growth when new machines are
added to the grid system. In general, the values were slightly lower than the predicted
values, becoming gradually more evident in the cases with higher number of machines
used in the grid system. This effect occurs due to the fact that when the number of
machines is increased the percentage of time spent with fundamental operations, such as
communication and files transfers within the grid environment, has more impact over
the total time of the entire job.
Figure 5. Performance results of GriDoMol in terms of system’s speedup. The predicted
values (blue diamond curve) represent how much processing power the system must
provide when new machines are added, that is, when the system has eight machines, it
116
should perform a given docking calculation eight times faster than the same simulation
done by only one machine.
In the tests carried out on this work, the performance speedup of the individual docking
calculation using eight processing cores ranged from 4.02 to 7.38 times faster in
comparison to the calculation using a single core. Based on what has been observed in
the original study of AutoDock Vina [14], the average value of speedup with eight
processing cores reported in this reference was 7.25 times, lower than expected
performance of 8 times for this quantity of cores. This variation of performance at
processing cores level between the GriDoMol tests and the original study of AutoDock
Vina may have occurred due to differences in machine configuration (software and
hardware) used in each of these analysis. It is worth mentioning that the purpose of this
study was not to optimize the internal parallelization performance of AutoDock Vina
program, but just to measure the performance gain through the use of a grid computing
environment.
In order to analyze how much the file transfer phase impacts the total time of the whole
job, some jobs (group of 500 re-docking calculations) were re-executed without the file
transfer step, which means that all the files needed for the tests were previously made
available on each machine. The comparison of the total time of calculations in the cases
“with” and “without” the file transfer phase gives a measurement of the time spent on
this step (file transfer). The analysis of the data obtained with this new test revealed that
the time spent on file transfer phase was 9.39% of the total time, when one machine was
used in the computational grid. Additionally, when it was used five machines in the
grid, the contribution of the file transfer step was measured as 3.23% of the time spent
in the overall job. We believe that this happened because more machines were
117
performing the docking calculations, consequently; there was a higher chance that,
fortuitously, some of these file transfers may be occurring simultaneously among the
machines, reducing the total time spent on the job.
Discussion
In general, examining all GriDoMol’s tests and considering the performance of the
computational grid, it was noticed that when using more machines, rather than more
processing cores, the docking calculation proved to be more efficient, taking a small
amount of time. For instance, the use of eight machines and one core for each machine
(12,312 seconds) is faster than the inverse, i.e., one machine and the eight cores for it
(20,977 seconds). When using both strategies to distribute the docking calculations, grid
computing and multicore processing, and considering the infrastructure used in this
work (eight machines containing eight cores each), GriDoMol system provided a
reduction of the overall calculation time by up to 97% of the time spent in a non-
parallelized calculation (one machine with one core running). So, the use of these
distributed computing strategies (grid computing and multiprocessing) brought a
performance gain up to 34.91 times within GriDoMol system. Besides, due to the
scalability of such computational grid systems, if more machines are added to the grid,
even a higher speed up could be obtained.
Conclusion
On this present work, we have found the factors that cause speed up and the limitations
which impact the data processing, file transfer and communication phases. The
simultaneous occurrence of these phases on a distributed system, even if these
occurrences happen on different phases (e.g. a given machine is in file transfer phase
118
while the other is already in data processing phase), harshly reduces the required time to
accomplish a given number of tasks if compared to these phases being done sequentially
(one machine), thus reducing the overall time required to perform the set of tasks.
On the other hand, the idleness of data processing, file transfer and communication
phases represents some of the limitations of this type of distributed system. The idleness
at this data processing phase happens when there are more machines available than
tasks to be performed. For example, when performing the final 3 tasks on a
computational grid with 10 machines, 7 machines will be idle waiting for the remaining
machines to finish these last tasks. There is also idleness on the file transfer and
communication phases on a computational grid if compared to a standalone execution.
Even with these limitations mentioned above, speed up improvement achieved by using
both parallelism strategy, grid level (eight machines) and core level (eight cores by
machine), was 34.91 times faster than using only one machine and one core. Thus, the
time required to perform 500 tasks of molecular docking was reduced by up to 97% of
the time required when compared to not using any parallelism strategy or distributed
computing.
Therefore, we conclude that the development of the software GriDoMol, which is an
integrated system that allows the use of distributed computing resources offered by the
computational grid environment OurGrid, in combination with the program AutoDock
Vina to perform molecular docking, achieved its primary goal of increasing the
computational performance, allowing the execution of a large set of individual tasks
("BoT") in a small fraction of the time it would take to perform the same set of tasks
sequentially on a single computer.
119
ASSOCIATED CONTENT
Supporting Information. Table S1 with the complete list of complexes used for the
performance tests and the Table S2 containing the detailed performance results. This
material is available free of charge via the Internet at http://pubs.acs.org.
AUTHOR INFORMATION
Corresponding Author
*E-mail: [email protected]
ACKNOWLEDGMENT
The author Luiz Felipe G. R. Ferreira would like to thank the scholarship support from
Fundação de Amparo à Ciência e Tecnologia de Pernambuco - FACEPE. Authors also
would like to thank CNPq for financial support.
REFERENCES
(1) Geldenhuys, W. J.; Gaasch, K. E.; Watson, M.; Allen, D. D.; Van der Schyf, C. J.
Optimizing the use of open-source software applications in drug discovery, Drug
Discov. Today, 2006 11, 127-132.
(2) McGee, P. Modeling success with in silico tools, Drug Discov. Develop., 2005, 8,
24–28.
(3) Araujo, E.; Cirne, W.; Wagner, G.; Oliveira, N.; Souza, E. P.; Galvao, C. O.;
Martins, E. S. The SegHidro experience: Using the grid to empower a hydro-
meteorological scientific network, Ieee Computer Soc., Los Alamitos, 2005.
120
(4) Mattos, G.; Formiga, A. D.; Lins, R. D.; Martins, F. M. J. BigBatch: A Document
Processing Platform for Clusters and Grids, Assoc. Computing Machinery, New York,
2008.
(5) Pappalardo, F.; Halling-Brown, M. D.; Rapin, N.; Zhang, P.; Alemani, D.; Emerson,
A.; Paci, P.; Duroux, P.; Pennisi, M.; Palladini, A.; Miotto, O.; Churchill, D.; Rossi, E.;
Shepherd, A. J.; Moss, D. S.; Castiglione, F.; Bernaschi, M.; Lefranc, M. P.; Brunak, S.;
Motta, S.; Lollini, P. L.; Basford, K. E.; Brusic, V. ImmunoGrid, an integrative
environment for large-scale simulation of the immune system for vaccine discovery,
design and optimization, Brief. Bioinform., 2009, 10, 330-340.
(6) Giupponi, G.; Harvey, M. J.; De Fabritiis, G. The impact of accelerator processors
for high-throughput molecular modeling and simulation, Drug Discov. Today, 2008, 13,
1052-1058.
(7) Woods, C. J., Ng, M. H.; Johnston, S.; Murdock, S. E.; Wu, B.; Tai, K.; Fangohr,
H.; Jeffreys, P.; Cox, S.; Frey, J. G.; Sansom, M. S. P.; Essex, J. W. Grid computing and
biomolecular simulation, Philos. Trans. R. Soc. A-Math. Phys. Eng. Sci., 2005, 363,
2017-2035.
(8) Buyya, R.; Branson, K.; Giddy, J.; Abramson, D. The virtual laboratory: A toolset
for utilizing the world-wide grid to design drugs, Ieee Computer Soc, Los Alamitos,
2002.
(9) Zhang, S. X.; Kumar, K.; Jiang, X. H.; Wallqvist, A.; Reifman J. DOVIS: an
implementation for high-throughput virtual screening using AutoDock, BMC
Bioinformatics, 2008, 9.
121
(10) De Vries, S. J.; van Dijk, M.; Bonvin, A. The HADDOCK web server for data-
driven biomolecular docking, Nat. Protoc., 2010, 5, 883-897.
(11) Abreu, R. M. V.; Froufe, H. J. C.; Queiroz, M.; Ferreira, I. MOLA: a bootable,
self-configuring system for virtual screening using AutoDock4/Vina on computer
clusters, J. Cheminformatics, 2010, 2.
(12) Morris, G. M.; Huey, R.; Lindstrom, W.; Sanner, M. F.; Belew, R. K.; Goodsell, D.
S.; Olson, A. J. AutoDock4 and AutoDockTools4: Automated Docking with Selective
Receptor Flexibility, J. Comput. Chem., 2009, 30, 2785-2791.
(13) e-NMR Web Portal. http://www.enmr.eu/webportal/ (31/01/13)
(14) Trott, O.; Olson, A. J. Software News and Update AutoDock Vina: Improving the
Speed and Accuracy of Docking with a New Scoring Function, Efficient Optimization,
and Multithreading, J. Comput. Chem., 2010, 31, 455-461.
(15) Andrade, N.; Cirne, W.; Brasileiro, F.; Roisenberg, P. OurGrid: An approach to
easily assemble grids with equitable resource sharing, in: D. Feitelson, L. Rudolph, U.
Schwiegelshohn (Eds.) Job Scheduling Strategies for Parallel Processing, Springer-
Verlag Berlin, Berlin, 2003, 61-86.
(16) Ignite Realtime: Openfire Server. http://www. igniterealtime.org/projects/openfire/
(10/12/12).
(17) Qt framework. http://qt.digia.com/ (10/12/12).