UNIVERSIDADE ESTADUAL DE SANTA CRUZ HÉLDER CONCEIÇÃO ALMEIDA CÁLCULO DE COEFICIENTES DE CONVERSÃO UTILIZANDO O CÓDIGO MCNPX PARA O FANTOMA MAX ILHÉUS – BAHIA 2010
UNIVERSIDADE ESTADUAL DE SANTA CRUZ
HÉLDER CONCEIÇÃO ALMEIDA
CÁLCULO DE COEFICIENTES DE CONVERSÃO UTILIZANDO O CÓDIGO
MCNPX PARA O FANTOMA MAX
ILHÉUS – BAHIA
2010
HÉLDER CONCEIÇÃO ALMEIDA
CÁLCULO DE COEFICIENTES DE CONVERSÃO UTILIZANDO O CÓDIGO
MCNPX PARA O FANTOMA MAX
Relatório final de estágio supervisionado
apresentado, para a obtenção do título de
bacharel em Ciência da Computação, à
disciplina Estágio Supervisionado, à
Universidade Estadual de Santa Cruz.
Área de concentração: Ciência da Computação.
Orientador: Prof. Dany Sanchez Dominguez
ILHÉUS – BAHIA
2010
HÉLDER CONCEIÇÃO ALMEIDA
CÁLCULO DE COEFICIENTES DE CONVERSÃO UTILIZANDO O CÓDIGO
MCNPX PARA O FANTOMA MAX
Ilhéus-BA, 16/06/2010
______________________________________
Dr. Dany Sanchez Dominguez
UESC / DCET
(Orientador)
______________________________________
Dr. Paulo Sávio da Silva Costa
UESC / DCET
(Professor)
______________________________________
Esbel Tomás Valero Orellana
UESC / DCET
(Convidado)
DEDICATÓRIA
À minha família e amigos que me apoiaram e não mediram esforços para que eu
chegasse até essa etapa de minha vida, assim como a meus professores e
orientadores que sempre me incentivaram, dedico.
AGRADECIMENTOS
Aos meus professores da formação básica, pelo ensino, disciplina e incentivo que
me foi passado desde os tempos de infância.
Ao Departamento de Ciências Exatas e Tecnológicas da Universidade Estadual de
Santa Cruz que me concedeu a oportunidade da realização do curso.
À Fundação de Amparo à Pesquisa do Estado da Bahia por ter me concedido bolsa
de Iniciação Científica, por duas vezes, incentivando-me a contribuir com a pesquisa
e disseminação do conhecimento na região.
Aos meus professores Esbel Tomás Valero Orellana, Susana Marrero Iglesias e
Felix Mas Milian que acreditaram e desenvolveram o meu potencial na pesquisa
científica e me incentivaram a atuar nesta atividade.
Especialmente ao meu orientador, Dr. Dany Sanchez Dominguez que foi meu
professor e orientador em dois projetos de iniciação científica, diversos projetos de
pesquisa durante toda a graduação, além de orientar-me nesse projeto de conclusão
de curso.
Aos colegas Alexandre Gonzaga dos Santos, Gabriel Falcão da Silva Rios,
Marlesson Rodrigues Oliveira Santana e Pablo Rangel Lopes Silva pelo
companheirismo nas horas de descontração e de estudo, pela companhia nas
viagens para os diversos eventos e o apoio nas disciplinas mais exigentes durante o
curso.
E finalmente à minha família e noiva pelo imenso apoio, ajuda e cooperação.
Especialmente aos meus pais.
"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."
Albert Einstein
CÁLCULO DE COEFICIENTES DE CONVERSÃO UTILIZANDO O CÓDIGO
MCNPX PARA O FANTOMA MAX
RESUMO
O uso de radiação ionizante em diversas aplicações está amplamente
difundido na sociedade atual. A exploração destas tecnologias deve ser feita em
condições que garantam a segurança dos trabalhadores, dos usuários e do público
em geral. Do ponto de vista de proteção radiológica, é relevante o uso de técnicas e
metodologias que calculem com precisão a dose absorvida por órgãos e tecidos
radio-sensíveis.
Ao estimarmos a dose absorvida é essencial contar com coeficientes de
conversão que permitam calcular esta grandeza de forma simples e precisa. O
código de Monte Carlo N-Particle eXtended (MCNPX) é amplamente utilizado para
pesquisa nesta área da radioproteção. Este utiliza métodos probabilísticos para
simular a interação da radiação com a matéria. As técnicas de simulação utilizadas
pelo MCNPX requerem muito poder de processamento e memória, tornando-o lento
e possivelmente impraticável.
Este projeto propõe instalar, configurar e medir o desempenho do MCNPX
nos sistemas operacionais Windows e Linux, além de utilizar o código para calcular
os coeficientes de conversão do fantoma anatômico brasileiro MAX comparando-o
com os recomendados pela Comissão Internacional de Proteção Radiológica e com
o fantoma chinês CAM.
Palavras-chave: códigos de Monte Carlo; MCNPX; Coeficientes de conversão;
fantoma MAX.
LISTA DE TABELAS
1. Valores dos fatores de peso da radiação, wR. .................................................. 9
2. Fatores de peso para órgãos e tecidos específicos para o cálculo de
dose efetiva. ..................................................................................................... 9
3. Comparação entre as massas dos órgãos do MAX com as
recomendadas pela ICRP 89. Em negrito estão assinaladas as
diferenças ....................................................................................................... 15
4. Tempo de execução do MCNPX no SO Linux Fedora 9 para testes
seriais (em minutos)........................................................................................ 20
5. Tempo de execução do MCNPX no SO Windows XP para testes seriais
(em minutos). .................................................................................................. 21
LISTA DE FIGURAS
1. Radiações mais ionizantes e seus respectivos poderes de penetração ........... 7
2. Representação do modelo matemático MIRD-5. ............................................ 12
3. Passos para construção de modelo dosimétrico para o corpo inteiro. ........... 13
4. Fantoma MAX (a) vista frontal, (b) vista lateral e (c) corte transversal. .......... 15
5. Comparativo do tempo de execução do MCNPX entre os SO Windows
XP e Linux Fedora 9 para elétrons de 30 MeV. .............................................. 21
6. Comparativo do tempo de execução do MCNPX entre os SO Windows
XP e Linux Fedora 9 para phótons com energia 10 MeV. ............................. 22
7. SpeedUp do MCNPX, de 1 a 8 processadores, ao simular elétrons com
energias 10 e 30 MeV, e 106 e 107 histórias. ................................................ 24
8. SpeedUp do MCNPX, de 1 a 8 processadores, ao simular phótons com
energias 1 e 10 MeV, e 106 e 107 histórias. .................................................. 25
9. Tempo de execução do MCNPX de 1 a 8 processadores, ao simular
elétrons com energias 10 e 30 MeV, e 106 e 107 histórias. ........................... 26
10. Tempo de execução do MCNPX de 1 a 8 processadores, ao simular
phótons com energias 1 e 10 MeV, e 106 e 107 histórias. ............................. 26
11. Geometria de irradiação antero-posterior (AP) simulada neste trabalho. ....... 29
12. Comparação dos CCs da pele na geometria AP entre os fantomas
MAX06, CAM e as recomendações da ICRP 74. ........................................... 30
13. Comparação dos Coeficientes de Conversão do fígado na geometria AP
entre os fantomas MAX06, CAM e as recomendações da ICRP 74. .............. 30
14. Comparação dos Coeficientes de Conversão do esôfago na geometria
AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74. ........ 31
15. Comparação dos Coeficientes de Conversão da lente dos olhos na
geometria AP entre os fantomas MAX06, CAM e as recomendações da
ICRP 74. ......................................................................................................... 31
16. Comparação dos Coeficientes de Conversão dos testículos na geometria
AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74. ........ 32
17. Comparação dos Coeficientes de Conversão dos testículos na geometria
AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74. ........ 32
18. Comparação dos Coeficientes de Conversão dos testículos na geometria
AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74. ........ 33
LISTA DE SIGLAS
ALARA As Low As Reasonably Achievable
CC Coeficiente de Conversão
CAM Chinese Adult Man
ICRP International Commission on Radiological Protection
ICRU International Commission on Radiological Units and Measuraments
INP Input File
LAHET Los Alamos High-Energy Transport
LCC Laboratório de Computação Científica
MAX Male Adult voxel
MCNP Monte Carlo N-Particle
MCNP4C Monte Carlo N-Particle Version 4c
MCNP5 Monte Carlo N-ParticleVersion5
MCNPX Monte Carlo N-Particle eXtended
MPI Message Passing Interface
PVM Parallel Virtual Machine
SO Sistema Operacional
UESC Universidade Estadual de Santa Cruz
UFPE Universidade Federal de Pernambuco
UV Ultra Violeta
VOXEL Volume em Pixel
SUMÁRIO
RESUMO ..................................................................................................... vi
1. INTRODUÇÃO ............................................................................................. 1
1.1. Identificação do Problema ............................................................................ 3
1.2. Objetivos....................................................................................................... 4
1.2.1. Objetivo Geral ............................................................................................... 4
1.2.2. Objetivos Específicos ................................................................................... 4
2. FUNDAMENTOS TEÓRICOS ...................................................................... 5
2.1. Radiação ...................................................................................................... 5
2.1.1. Radiação não-ionizante ................................................................................ 5
2.1.2. Radiação ionizante ....................................................................................... 5
2.2. Grandezas e unidades dosimétricas ............................................................ 7
2.2.1. Dose absorvida ............................................................................................. 8
2.2.2. Dose equivalente .......................................................................................... 8
2.2.3. Dose efetiva .................................................................................................. 9
2.2.4. Fluência ...................................................................................................... 10
2.2.5. Kerma ......................................................................................................... 10
2.3. Coeficientes de conversão ......................................................................... 11
2.4. Modelo antropomórfico matemático ........................................................... 12
2.4.1. Modelo antropomórfico baseado em imagem............................................. 13
2.4.2. O simulador MAX ....................................................................................... 14
2.5. O código de transporte de partículas MCNPX, baseado nométodo
de Monte Carlo ........................................................................................... 16
3. DESEMPENHO E CONFIGURAÇÃO DO MCNPX .................................... 18
3.1. O desempenho do MCNPX ........................................................................ 19
3.1.1. Testes em arquitetura serial ....................................................................... 19
3.1.2. Testes em arquitetura paralela ................................................................... 22
4. CÁLCULO DOS COEFICIENTES DE CONVERSÃO ................................ 28
5. CONCLUSÕES E TRABALHOS FUTUROS ............................................. 34
6. REFERÊNCIAS BIBLIOGRÁFICAS .......................................................... 36
APÊNDICE ................................................................................................. 38
APÊNDICE A - Manual de Instalação do MCNPX 2.6 ................................ 37
1
1. INTRODUÇÃO
A utilização de radiações ionizantes tem inúmeras aplicações na sociedade
moderna, como medicina nuclear, produção de energia, plantas de irradiação e
técnicas nucleares analíticas. Entretanto, a utilização de radiação nestas aplicações
introduz riscos à saúde devido a seus efeitos prejudiciais ao corpo humano. As
agências reguladoras e a comunidade acadêmica trabalham em conjunto para
quantificar os efeitos biológicos da radiação e estabelecer normas e critérios que
salvaguardem trabalhadores, usuários e indivíduos do público em geral.
A manutenção de níveis de radiação ionizante abaixo dos limites
recomendados por normas internacionais é um tema amplamente abordado pela
comunidade científica mundial. A proteção radiológica durante a utilização de fontes
de radiação ionizante na medicina deve seguir uma filosofia de trabalho que preze
pela segurança e qualidade de vida das pessoas envolvidas em todas as etapas de
seu uso. A Comissão Internacional de Proteção Radiológica (ICRP) e a Comissão
Internacional de Unidades e Medidas de Radiação (ICRU) estabelecem que sejam
implantados métodos de otimização que garantam que os trabalhadores e os
membros do público expostos à radiação sejam submetidos aos menores níveis de
radiação possíveis, obedecendo ao princípio ALARA (tão baixo quanto
razoavelmente possível), levando-se em conta fatores sociais e econômicos. O
princípio ALARA é um postulado no qual se afirma que uma vez que não são
totalmente conhecidos os danos causados pela exposição à radiação ionizante em
doses baixas, devem-se manter os níveis de exposição tão baixos quanto
admissíveis, possivelmente exequíveis (VERGARA, 2005)
Prever as doses de radiação recebidas pelos órgãos e tecidos do corpo
humano é uma tarefa complexa. Pesquisas e experimentos para determinar a dose
absorvida diretamente em seres humanos são inaceitáveis. Uma alternativa é
realizar estes testes utilizando modelos ou fantomas que representem bem o corpo
humano, mas este enfoque tem diversas limitações: os fantomas utilizados possuem
pouco detalhamento em relação a pessoas reais, os experimentos são caros e suas
condições de aplicação limitadas. A melhor alternativa é fazer uso de simulações
computadorizadas usando códigos probabilísticos de transporte de partículas. Esses
simuladores requerem modelos matemáticos, conhecidos como fantomas
2
antropomórficos, que consigam representar indivíduos de uma população comum o
mais detalhadamente possível.
Os fantomas antropomórficos são representações computacionais utilizadas
para determinar coeficientes de conversão entre a dose absorvida nos órgãos e
tecidos e grandezas mensuráveis. Esses podem representar a anatomia do corpo
humano, com informações sobre densidade, composição química, forma, tamanho e
localização dos órgãos. Atualmente, os mais utilizados são: o modelo matemático e
o modelo baseado em imagens de tomografia computadorizada ou imagem de
ressonância magnética, chamado de fantoma voxelizado.
Nos últimos anos as agências reguladoras ICRP e ICRU, baseadas em dados
estatísticos recentes, aprimoraram as recomendações para uso de radiações
ionizantes. Especificamente, a recomendação ICRP 103 introduz novos órgãos e
tecidos a serem considerados nos cálculos de doses absorvida e doses efetiva. Em
paralelo, a comunidade acadêmica tem aperfeiçoado os fantomas anatômicos,
visando obter resultados mais precisos. Os modelos anatômicos mais eficazes são
os modelos voxelizados, os quais são compostos por um grande número de cubos
em forma de arranjos tridimensionais. O Brasil é o único país da América Latina que
desenvolveu seus próprios fantomas anatômicos voxelizados, o FAX (Female Adult
voXel) e MAX (Male Adult voXel). Isto é relevante para a radioproteção nacional já
que permite uma caracterização mais detalhada da população brasileira na
prevenção de doses absorvidas. O grande desafio ao utilizarmos fantomas
voxelizados é o elevado custo computacional das simulações. Para contornar esta
limitação, são calculados Coeficientes de Conversão (CCs) que permitem
correlacionar a dose absorvida em órgãos e tecidos com grandezas operacionais
fácies de medir. Neste sentido, a simulação probabilística é utilizada para
determinar os CCs que logo são utilizados para estimar as doses de radiação.
As próximas seções deste trabalho descrevem os objetivos e as etapas da
pesquisa realizada. Estas foram divididas em quatro partes. Primeiramente a revisão
e aprofundamento bibliográfico sobre os principais temas tratados, sendo eles:
proteção radiológica, radiação (ionizante e não ionizante), grandezas e unidades
dosimétricas envolvidas na interação da radiação com a matéria, e o código de
Monte Carlo MCNPX. Em seguida é abordada a instalação e configuração do
MCNPX, assim como medidas de desempenho referentes a este software. Ainda
neste trabalho, são revelados os coeficientes de conversão calculados e a análise
3
comparativa destes com os relatados na ICRP 74 e em outro projeto de pesquisa
envolvendo o fantoma chinês CAM.
1.1. Identificação do Problema
O MCNPX (Monte Carlo N-Particle eXtended) é um dos principais códigos
probabilísticos para simular problemas de transporte de partículas. Através dele é
possível calcular Coeficientes de Conversão (CCs) com grande precisão e diversas
opções de energias e partículas. Porém, este cálculo apresenta elevado custo
computacional e, consequentemente, um intervalo de tempo de execução
considerável. Isso dificulta e, muitas vezes, inviabiliza o uso da ferramenta, pois são
necessários computadores robustos e muito tempo de antecedência para executar
os cálculos. Sendo importante enfatizar que o referido tempo, muitas vezes,
ultrapassa semanas de cálculos ininterruptos para pequenos órgãos e tecidos do
fantoma.
Um dos motivos para esta necessidade de tempo acentuada se deve, muitas
vezes, ao mau aproveitamento dos recursos disponíveis do hardware onde o código
está instalado. Pesquisadores de diversos centros no Brasil e no mundo não
aproveitam todos os recursos disponibilizados pelo software (FOSTER 2004),
acomodando-se à sua instalação padrão, em ambientes não favoráveis à sua
execução. Porém, o próprio código fornece suporte a otimização e portabilidade
entre sistemas e arquiteturas computacionais diferentes, podendo ser executado em
ambientes com computação paralela, aproveitando assim novas tecnologias como
computadores multiprocessados e clusters de computadores. Além disso, é possível
instalá-lo em diversos sistemas operacionais, abrindo campo à pesquisa do sistema
que fornece melhor condições à sua execução. Contudo, para que a personalização
da instalação do MCNPX seja feita de maneira correta e realmente eficiente, é
necessário conhecimento computacional aprofundado e específico sobre sistemas
operacionais e tecnologias de paralelização.
4
1.2. Objetivos
1.2.1. Objetivo Geral
Adquirir competências na utilização de códigos Monte Carlo para simulação
computacional de problemas de transporte de partículas, especificamente ao
trabalhar com o código MCNPX. Podendo assim fornecer valores numéricos
precisos para os CCs do fantoma MAX, permitindo aperfeiçoar os mecanismos de
radioproteção e os protocolos de medicina nuclear nacionais. Além disso, consolidar
os conhecimentos em linguagens de programação, arquiteturas de computadores,
processamento paralelo e computação de alto desempenho, especificamente os
conceitos ligados à implementação, compilação, otimização e execução do código
MCNPX.
1.2.2. Objetivos Específicos
Os objetivos específicos deste trabalho são:
1. Instalar uma versão otimizada do MCNPX em um cluster de computadores;
2. Avaliar o desempenho computacional do código MCNPX nas arquiteturas e
sistemas operacionais mais utilizados pela comunidade científica;
3. Utilizar técnicas de processamento paralelo e computação de alto
desempenho que permitam utilizar o código MCNPX com fantomas
voxelizados de alta resolução com custo computacional aceitável. Espera-se
obter um speedup de aproximadamente 0.5p a 0.9p (seja p o número de
processadores utilizados na simulação) reduzindo o tempo de execução de
problemas seriais de alguns dias para poucas horas;
4. Calcular coeficientes de conversão para estimar a dose absorvida utilizando o
fantoma anatômico brasileiro MAX nos seguintes órgãos: pele, fígado, lentes
dos olhos, esôfago, tireóide, testículos e pulmões;
5. Adquirir conhecimentos adicionais sobre diferentes arquiteturas, sistemas
operacionais de computadores, compiladores e técnicas de computação de
alto desempenho.
5
2. FUNDAMENTOS TEÓRICOS
2.1. Radiação
O conceito de radiação é aplicado a ondas eletromagnéticas ou partículas que
se propagam com alta velocidade e energia. Estas partículas têm carga elétrica e/ou
magnética, e ao interagir com a matéria podem produzir variados efeitos. A radiação
pode ser gerada por fontes naturais ou por dispositivos construídos pelo homem.
As radiações eletromagnéticas mais conhecidas são: luz, micro-ondas, ondas
de rádio AM e FM, radar, laser, raios X e radiação gama. As radiações sob a forma
de partículas, com massa, carga elétrica e carga magnética mais comuns são feixes
de elétrons, prótons e fótons, radiação beta e radiação alfa. Das radiações
particuladas sem carga elétrica, a mais conhecida é o feixe de nêutrons.
A radiação pode ser caracterizada como ionizante e não ionizante; a principal
diferença entre elas é a energia e, portanto sua frequência ou comprimento de onda
(SILVA, 2007).
2.1.1. Radiação não ionizante
A radiação não ionizante é caracterizada por não possuir energia suficiente
para arrancar elétrons dos átomos do meio por onde está se deslocando, mas tem o
poder de quebrar moléculas e ligações químicas. Dessa radiação fazem parte: radio
freqüência, infravermelho e luz visível. Este tipo de radiação não é alvo de estudo
neste trabalho por não causar danos à saúde do ser humano.
2.1.2. Radiação ionizante
A radiação ionizante é definida como aquela que tem energia suficiente para
interagir com os átomos do meio por onde se propaga. Em outras palavras: essa
radiação tem energia para arrancar pelo menos um elétron de um dos níveis de
energia de um átomo do meio por onde está se deslocando. Assim, esse átomo
deixa de ser neutro e passa a ter uma carga positiva, pois o número de prótons se
torna maior que o de elétrons. A radiação ionizante converte o átomo neutro,
tornando-se um íon positivo.
6
A radiação ionizante pode ser classificada em dois grupos: aquela que possui
carga elétrica e a neutra. Alguns tipos de radiação corpuscular como partículas alfa
e beta, elétrons e prótons possuem carga, assim se encontram no primeiro grupo; o
nêutron, sem carga, se enquadra no segundo. Alguns tipos de radiação
eletromagnética também são ionizantes, como os raios UV, X e gama, mas como
não possuem carga também fazem parte da segunda categoria (SILVA, 2007).
As diferenças entre cada tipo de radiação estão no método de produção, no
poder de penetração e na interação com a matéria. Com relação a este último,
podemos afirmar que as partículas eletricamente carregadas interagem diretamente
com a matéria, produzindo ionização direta, já as partículas neutras e os fótons
provocam ionização indireta.
O poder de penetração da radiação ionizante está diretamente relacionado
com a energia inicial que ela tem e com a interação que ela sofre durante seu
movimento. Por exemplo, a partícula alfa possui duas cargas positivas, dessa forma
ela perde energia para os átomos do meio muito rapidamente e isto implica em um
alcance bem pequeno (no ar não ultrapassa alguns centímetros e no corpo humano
chega somente à superfície da pele). Essa partícula também pode ser considerada
pesada em comparação às demais, assim se movimenta em linha reta, e tem alto
poder de ionização, ou seja, ela deposita grande quantidade de energia por
centímetro que percorre (grande densidade de ionização) (SILVA, 2007).
A partícula beta tem apenas uma carga positiva e massa pequena, assim não
se movimenta em linha reta e sua interação com a matéria é menor que a da alfa,
resultando num alcance de aproximadamente 1 metro no ar. O poder de ionização
da partícula beta é mais baixo do que o da alfa e sua densidade de ionização é
baixa.
Os nêutrons são partículas eletricamente neutras, com isso seu poder de
ionização é pequeno e mesmo ionizando o meio por onde estão se propagando,
entretanto seu poder de penetração é muito grande. Materiais ricos em hidrogênio
como a água e a parafina servem como blindagem para os nêutrons.
A ionização que os fótons dos raios X e gama provocam na matéria é indireta,
pois primeiro eles promovem a criação ou a aniquilação de elétrons ou de pósitrons,
que por sua vez ionizam a matéria (reações secundárias).
7
A Figura 1 mostra as quatro radiações mais ionizantes e seu poder de penetração:
Figura 1– Radiações mais ionizantes e seus respectivos poderes de penetração
Os efeitos biológicos das radiações ionizantes ainda estão sendo estudados e
caracterizados, neste sentido as aplicações que utilizam radiação ionizante devem
estar justificadas, isto é, o beneficio da aplicação supera os potenciais danos ao
meio ambiente e a sociedade. Adicionalmente o trabalho com radiação ionizante
esta rigorosamente controlado por normas e critérios internacionais que visam
minimizar os efeitos prejudiciais do uso da radiação.
2.2. Grandezas e unidades dosimétricas
Desde os primórdios da utilização das radiações ionizantes em diversas
aplicações para fins de monitoração de radiação externa1 tem sido desenvolvido um
conjunto de grandezas de proteção radiológica e suas relações. Essas grandezas
são utilizadas na caracterização da radioatividade e dos campos da radiação, na
descrição da interação da radiação com a matéria e na quantificação dos efeitos. A
Comissão Internacional de Unidades e Medidas de Radiação (ICRU) e a Comissão
Internacional de Proteção Radiológica (ICRP) são responsáveis por organizar e
padronizar essas medidas.
Para fins de proteção radiológica a ICRP definiu as grandezas limitantes,
1Fonte de radiação externa ao organismo. Há também a radiação interna, onde o indivíduo ingeriu,
inalou ou absorveu a fonte de radiação.
Alfa
Beta
Gama
Nêutron
Papel
Água
Concreto
8
utilizadas para indicar o risco à saúde humana devido à radiação ionizante; já a
ICRU é responsável pelas grandezas operacionais, que levam em consideração as
atividades de radioproteção. A seguir descrevemos as grandezas limitantes e
operacionais que despertam maior interesse.
2.2.1. Dose absorvida
A grandeza física básica usada em proteção radiológica é a dose absorvida,
DT. Ela é definida como o quociente entre a energia média, , absorvida por um
elemento de volume do material e a massa, , desse volume (ICRP 103, 2008), ou
seja:
1
A dose absorvida é expressa em J/kg no Sistema Internacional de Unidades e
o nome especial para esta unidade é o gray (Gy).
2.2.2. Dose equivalente
Como os efeitos da radiação podem variar com a qualidade (tipo e energia)
da radiação, para uma mesma dose absorvida, foi necessário criar um conceito com
o qual fosse possível comparar os efeitos provocados pelas diferentes qualidades de
radiação. Assim, algumas radiações são mais efetivas do que outras em causar
efeitos estocásticos nos organismos e seres vivos. Para considerar isto, foi
introduzida a grandeza dose equivalente, HT, que é a dose absorvida média em um
órgão ou tecido, (DT,R), multiplicada por um fator de peso adimensional da radiação,
wR, relativo ao tipo e energia da radiação incidente R (ICRP 103, 2007), ou seja:
2
A dose equivalente é expressa em J/kg no Sistema Internacional de
Unidades. A unidade para a dose equivalente recebe o nome especial de sievert
(Sv).
Os fatores de peso da radiação, wR, foram estipulados pela ICRP 60 e são
apresentados na tabelaTabela1.
9
Tabela1- Valores dos fatores de peso da radiação, wR.
Tipos de energia Intervalos de Energias Fator de peso da
radiação, wR
Fótons Todas as energias 1
Elétrons e múons, Todas as energias 1
Nêutrons < 10 keV 5
Nêutrons > 10 keV a 100 keV 10
Nêutrons > 100 keV a 2MeV 20
Nêutrons > 2 MeV a 20 MeV 10
Nêutrons > 20 MeV 5
Prótons, (não de recuo) > 2 MeV 5
Partículas alfa, fragmento de fissão e núcleos pesados
Todas as energias 20
Fonte: REIS JÚNIOR, 2007, p. 08.
2.2.3. Dose efetiva
A dose efetiva, E, é a soma ponderada das doses equivalentes em todos os
tecidos e órgãos do corpo, expressa por:
∑
3
onde wT é o fator de peso do tecido T e HT é a dose equivalente a ele atribuída. No
sistema internacional de Unidades, a dose efetiva é expressa em J/kg, mas recebe o
nome especial de sievert (Sv). Os valores de wT para os órgãos ou tecidos
considerados para o cálculo da dose efetiva, estipulados pela ICRP 103 são
apresentados na Tabela 2.
Tabela 2- Fatores de peso para órgãos e tecidos específicos para o cálculo de dose efetiva.
Tecido ou Órgão Fator de peso do Tecido ou Órgão (wT)
Gônada 0,08
Medula óssea 0,12
Cólon 0,12
Pulmão 0,12
Estômago 0,12
Bexiga 0,04
Mamas 0,12
10
Tecido ou Órgão Fator de peso do Tecido ou Órgão (wT)
Fígado 0,04
Esôfago 0,04
Tireóide 0,04
Pele 0,01
Glândulas salivares 0,01
Cérebro 0,01
Superfície óssea 0,01
Restante* 0,12
* Os órgãos restantes são compostos por: adrenais, tecido extratorácico, vesícula, coração, rins, intestino delgado, nodos linfáticos, mucosa oral, músculo, pâncreas, baço, timo e útero/próstata.
Fonte: CORDEIRO, 2009, p. 24.
2.2.4. Fluência
A fluência, Φ, é o quociente de dN por da, onde dN é o número fótons
incidentes sobre uma esfera de seção de área da, ou seja:
4
Esta variável é facilmente calculada, pois pode ser medida no ambiente
exterior ao órgão e tecido exposto. Não necessitando sujeitar o indivíduo a qualquer
tipo de radiação ionizante.
2.2.5. Kerma
O kerma, K, é o quociente de dEtr por dm, onde dEtr é a soma das energias
cinéticas iniciais de todas as partículas carregadas liberadas por partículas
ionizantes não carregadas no elemento de material de massa dm (ICRP 103, 2008)
ou seja:
5
O Kerma é expresso em J/kg, no Sistema Internacional de Unidades. Assim
como a Fluência esta variável é facilmente calculada, pois pode ser medida no
ambiente exterior ao órgão e tecido exposto
11
2.3. Coeficientes de conversão
Determinar a dose absorvida no corpo humano é uma tarefa complexa, a
realização de experimentos com objetos de estudo reais (pessoas) é inviável por
razões obvias. Uma das alternativas é utilizar fantomas com materiais equivalentes
ao tecido humano e realizar medidas para diversas geometrias de irradiação.
Entretanto existem diversas limitações neste procedimento. É necessário realizar
uma grande quantidade de medidas, posicionando dosímetros nos vários
compartimentos do fantomas. Outra alternativa é utilizar simulação computacional e
códigos de Monte Carlo de transporte de radiação para realizar esta tarefa. Este
enfoque é viável do ponto de vista operacional, entretanto o consumo de recursos
computacionais é muito elevado. Neste sentido é desejável estabelecer uma
correlação entre as grandezas operacionais que podem ser medidas facilmente e a
dose absorvida em órgão e tecidos do corpo humano. Esta correlação é chamada de
coeficientes de conversão (CCs). A fórmula para seu cálculo é apresentada abaixo:
(
)
( )
( )
6
Coeficientes de conversão são dados que correlacionam valores das
grandezas kerma e fluência com a dose efetiva e a dose nos órgãos ou tecidos.
Permitindo assim calcular de forma simples a dose a que um indivíduo estaria
exposto, é evidente que o uso dos CCs introduz uma aproximação (REIS JÚNIOR,
2007).
Para o cálculo de CCs é necessária a utilização de:
um simulador antropomórfico que represente a anatomia do corpo
humano (fantoma);
um código computacional para simular o transporte da radiação nos
órgãos e tecidos, representados pelo simulador antropomórfico, em
diversas condições de irradiações visando a determinação da dose.
Existem dois modelos capazes (modelos que contêm informações sobre a
densidade, composição química, forma, tamanho e localização dos órgãos) de
representar o corpo humano para simulações: os modelos matemáticos e os
modelos baseado em imagens. Ambos são chamados de modelos antropomórficos
e podem ser utilizados junto a códigos computacionais para simular a dose
12
absorvida em órgãos e tecidos do corpo humano como resultado da exposição deste
à radiação ionizante.
2.4. Modelo antropomórfico matemático
No fantoma matemático, os tecidos, os órgãos e o formato do corpo foram
descritos por expressões matemáticas que representavam combinações e
intersecções de planos, elipsoides, cones, cilindros circulares e elípticos e toros
(REIS JÚNIOR, 2007). Este modelo foi baseado nos dados anatômicos da ICRP,
publicação nº. 23, (ICRP 23, 1975) para representar o homem adulto médio e é
conhecido como MIRD-5 (Medical Internal Radiation Dose Committee).
Figura 2 - Representação do modelo matemático MIRD-5.
Fonte: REIS JÚNIOR, 2007, p. 12.
Há modelos matemáticos com características que estão de acordo com as
massas e volumes da anatomia humana. Porém estes modelos possuem limitações
quanto à forma do corpo e dos órgãos internos. Isso porque havia necessidade de
representá-los de forma simplificada para que os códigos de Monte Carlo pudessem
executar as simulações, devido às limitações dos recursos computacionais (tempo
de processamento e espaço de armazenamento). Todavia a anatomia humana é
extremamente complexa para ser realisticamente representada por equações
13
matemáticas simples.
2.4.1. Modelo antropomórfico baseado em imagem
Alternativamente à limitação imposta pela complexidade da anatomia humana
aos simuladores matemáticos, surgiram os modelos baseados em imagens internas.
Denominados fantomas em voxel (Volume em pixel), estes são criado a partir de
uma sequência de imagens digitais de órgãos e tecidos do corpo humano que
mostram áreas de seção, vistas do topo, ao longo do corpo do indivíduo a ser
analisado. Fantomas em voxel, atualmente, são os mais próximos da representação
real do corpo humano, porém para sua utilização encontram-se alguns empecilhos
não fáceis de serem superados.
A qualidade da imagem utilizada na geração do código interfere diretamente
na precisão com que os órgãos são representados no fantoma. As imagens do corpo
são compostas de fatias vistas do topo, as quais possuem espessura, largura e
comprimento da matriz. O voxel é representado pela multiplicação do tamanho do
pixel pela espessura da fatia da imagem, obtendo um elemento tridimensional
(CHAO, 2001). A Figura 3 mostra os passos necessários para a criação de um
modelo dosimétrico a partir de fatias de imagens.
Figura 3 - Passos para construção de modelo dosimétrico para o corpo inteiro.
Fonte: REIS JÚNIOR, 2007, p. 14.
Normalmente as imagens iniciais têm formato quadrado, com 512 x 512
14
pixels. Alguns processos de transformação são aplicados nas imagens para que
estas possuam a forma ideal para uso em dosimetria numérica, os principais são a
segmentação, classificação e reamostragem. Na segmentação aplicam-se rotinas
para interpretar os dados das cores de uma varredura dentro de um tipo de tecido no
corpo. Novas imagens são geradas, agora com o contorno de vários órgãos
facilmente reconhecidos através das diferenças nos tons de cinza. O próximo passo
é definir valores de densidade para cada órgão, para isso são definidos sete tecidos
diferentes para a construção do modelo: tecido pulmonar, tecido mole, pele,
músculo, ossos, medula óssea e ar.
Depois que cada o órgão e tecido é segmentado, um valor de identificação
(ID) específico é atribuído a cada cor. Assim as regiões segmentadas são órgãos e
tecidos onde todos os voxels que pertençam a um órgão ou tecido possuem o
mesmo ID. A reunião de todos estes voxels formam um modelo para a
representação do corpo inteiro, o qual pode ser lido e importado para o código de
Monte Carlo para a simulação do transporte de radiação.
2.4.2. O simulador MAX
A publicação de uma nova série de dados pelo relatório 89 da ICRP, intitulado
Dados Anatômicos e Fisiológicos Básicos para o Uso em Proteção Radiológica:
Valores de Referência foi à motivação para a criação do fantoma MAX (KRAMER,
2003).
O modelo antropomórfico MAX (Figura 4) foi construído a partir de uma base
de dados com 151 imagens de tomografias computadorizadas da varredura de
tronco e cabeça de um paciente com 37 anos de idade, que pesava 70 kg e tinha
uma altura de 1,75 m. Todos os órgãos de risco, exceto a medula óssea, foram
segmentados manualmente por uma técnica que foi desenvolvida no Departamento
de Energia Nuclear da UFPE. Após a segmentação, os volumes dos órgãos e
tecidos foram ajustados para concordar com as massas recomendadas pela ICRP
89. A Tabela 3 exibe a comparação entre a massa dos órgãos do fantoma MAX e a
recomendada pela ICRP 89.
15
Figura 4- Fantoma MAX (a) vista frontal, (b) vista lateral e (c) corte transversal.
Fonte: SANTOS, 2010, p. 20.
Tabela 3– Comparação entre as massas dos órgãos do MAX com as recomendadas pela ICRP 89. Em negrito estão assinaladas as diferenças
Órgão / Tecido ICRP 89 (g) MAX (g)
Tecido adiposo 14600 14591,7 Suprarrenais 14 14,7 Bexiga 50 50 Esqueleto 10500 11371,6 Cérebro 1450 1450 Cólon 670 670 Olhos 15 15,8 Rins 310 310 Fígado 1800 1800 Pulmões 1200 1061,5 Músculo esquelético 29000 31003,8 Esôfago 40 40 Intestino Delgado 1000 1000 Pele 3300 3254,8 Baço 150 150 Testículo 35 34,7 Timo 25 25
16
Órgão / Tecido ICRP 89 (g) MAX (g)
Tireóide 20 19,8 Traqueia 10 14,3 Medula Óssea Vermelha 1170 1200 Pâncreas 140 140 Estômago 400 400 Fonte: SANTOS, 2010, p. 20.
2.5. O código de transporte de partículas MCNPX, baseado no método de Monte Carlo
As técnicas de Monte Carlo aliadas ao crescimento da velocidade dos
computadores têm causado um grande crescimento na resolução de problemas
complexos de radioproteção. Consequentemente a quantidade de publicações
científicas nas áreas médicas e biológicas utilizando o método de Monte Carlo vem
crescendo significativamente.
O método de Monte Carlo pode ser usado para representar um processo
estatístico, como a interação da radiação com a matéria, tendo maior utilidade em
problemas complexos que não podem ser simulados por métodos determinísticos.
No método de Monte Carlo os eventos probabilísticos que representam um processo
estatístico são simulados de forma sequencial.
O processo de amostragem estatística é baseado na seleção de números
aleatórios (SANTOS, 2010). No transporte de partículas da radiação, a técnica de
Monte Carlo consiste em seguir cada partícula, desde a fonte, ao longo de sua vida,
até o seu desaparecimento (escape, absorção etc.).
O código de transporte de partículas MCNP (X-5 Monte Carlo Team, 2003),
desenvolvido em Los Alamos National Laboratory (EUA) e baseado no método de
Monte Carlo, é atualmente um dos códigos computacionais mais utilizados
mundialmente na área de transporte de radiação envolvendo nêutrons, fótons,
elétrons e partículas carregadas tais como prótons, deutérios e partículas alfa. A
possibilidade de trabalhar com geometrias complexas em três dimensões, a
variedade de opções de dados de entrada e a capacidade de trabalhar com diversos
grupos de energia, fazem deste código, uma ferramenta extremamente eficiente no
campo da modelagem de instalações nucleares, blindagem da radiação, física
médica, proteção radiológica, entre outros.
O código simula o transporte de partículas, individual ou coletivamente,
através da matéria. O transporte é feito por meio de processos aleatórios repetitivos
17
utilizando técnicas estatísticas, em modelos previamente determinados, permitindo a
obtenção de soluções de vários problemas que requerem grande poder
computacional devido ao fato de possuírem grande quantidade de eventos
probabilísticos (SANTOS, 2010).
Para ser executado corretamente, o MCNPX e suas bibliotecas precisam
estar instalados e configurados. Ademais, é necessário que o arquivo de entrada
(fantoma) esteja adequado e atenda aos requisitos do software. No arquivo de
entrada (INP) é necessário determinar: tipo de fonte, de detector, configuração
geométrica e condições gerais do sistema desejado, como tamanho, forma, espectro
de energia, composição da fonte de radiação bem como do meio que a radiação irá
interagir e definição da geometria do detector desejado.
18
3. DESEMPENHO E CONFIGURAÇÃO DO MCNPX
O MCNPX pode ser instalado na grande maioria das plataformas
computacionais e sistemas operacionais conhecidos, Mac OS, Windows e
Unix/Linux. Porém em alguns sistemas o elevado nível de dificuldade na instalação e
configuração acaba tolhendo desta ferramenta o uso de maneira mais eficiente e
divulgada.
O software utiliza métodos probabilísticos de grande complexidade para
executar as simulações e apresentar resultados com boa precisão, em contrapartida
o código requer alto custo computacional para consegui-los. Porém com a evolução
da tecnologia têm surgido novos hardwares com grande poder de processamento e
softwares que permitem um melhor aproveitamento dos recursos oferecidos. Como
exemplos existem as novas arquiteturas de processadores com n núcleos de
processamento e as bibliotecas MPI (Message Passinho Interface), utilizadas para
comunicação entre computadores na computação paralela2.
O suporte a processamento paralelo e distribuído foi incorporado a partir da
versão 5 do MCNP. Como biblioteca padrão foi escolhida o MPI, a qual é definida
como melhor opção para uso em clusters homogêneos UNIX/Windows ou
computadores multiprocessados com memória compartilhada. Em acréscimo, o
MCNPX também dá suporte ao uso de PVM (Parallel Virtual Machine), mais indicado
em ambientes com redes heterogêneas de computadores (FOSTER, 2004).
Para este projeto teve-se a disposição um cluster homogêneo do tipo
Beowulf3, composto de nove computadores com sistema operacional (SO) Linux;
além disso, um computador com sistemas operacionais (SO) Windows e Linux para
fazer testes de desempenho entre os SOs.
Primeiramente procurou-se informações sobre o desempenho do MCNPX em
um determinado ambiente computacional. Porém há pouca informação sobre este
2A computação paralela é uma forma de computação em que vários cálculos são realizados
simultaneamente, operando sob o princípio de que grande problemas geralmente podem ser divididos em problemas menores, que então são resolvidos concorrentemente (em paralelo) (ALMASI; GOTTLIEB, 1988). 3Cluster Beowulf são clusters de desempenho escaláveis, baseados numa infraestrutura de hardware
comum, rede privada e software 'open source' (Linux). O 'hardware comum' pode ser qualquer tipo de computador, significando que não é necessário usar equipamentos próprios para cluster, bastando utilizar equipamentos comuns a redes tradicionais e PCs. Definição retirada de http://pt.wikipedia.org/wiki/Aglomerado_Beowulf.
19
aspecto do programa. A grande maioria dos resultados aponta para a instalação e
utilização em ambiente Windows, pois há uma versão do MCNPX que já vem
compilada e otimizada para este sistema operacional. Contudo, ao utilizar esta
instalação padrão foi verificado um gasto de tempo muito grande na realização de
simulações de médio e grande porte. E ainda que só uma parte dos recursos
computacionais disponíveis estava sendo utilizada.
Para o andamento deste projeto foi necessária a execução de um grande
número de simulações. Primeiro para testes de funcionamento e depois para
determinar os CCs, tornando necessários uma maior rapidez e aproveitamento dos
recursos disponíveis. Aproveitando a disponibilidade de clusters de computadores
nos laboratórios e o suporte do MCNPX ao padrão de comunicação de dados em
computação paralela MPI objetivou-se conseguir uma instalação personalizada que
obtive-se bom desempenho nestas máquinas.
3.1. O desempenho do MCNPX
Para que se obtivesse uma instalação otimizada do MCNPX era necessário
executar uma bateria de testes de desempenho. Estes possuíram duas fases
distintas, primeiramente testes em modo serial, usando apenas um único processo,
para descobrir a plataforma mais eficaz ao executar o MCNPX, considerando como
critério o sistema operacional. A outra fase de testes consistiu em medir o
desempenho da execução do MCNPX em modo paralelo, usando diversos
processos simultâneos na resolução de uma tarefa.
3.1.1. Testes em arquitetura serial
Na primeira fase foram feitos testes seriais com quatro faixas de energia: 0.1
MeV, 1 MeV, 10 MeV e 30 MeV, e seis quantidades de histórias: 1,00E+03,
1,00E+04, 1,00E+05, 1,00E+06, 1,00E+07 e 1,00E+08. Foram realizados
experimentos numéricos nos sistemas operacionais Windows XP e Linux Fedora9.
Todos os experimentos foram feitos em máquinas com a configuração de hardware
idêntica. Visando garantir a fidelidade nas comparações entre as plataformas, cada
corrida foi executada no mínimo três vezes para então ser realizada uma análise
20
estatística sobre as tomadas de tempo obtidas. Cada máquina usada nos testes era
composta por um processador Intel(R) Pentium(R) D CPU 2.80GHz, cache L2 com
2048 KB.
Como dito anteriormente, há um arquivo executável do MCNPX para a
plataforma Windows, não sendo necessária nova compilação, pois este executável
seria totalmente customizado para este SO. Já para executá-lo no Linux, é
necessário compilá-lo no sistema, este foi compilado de maneira simples, sem
qualquer diretiva de otimização. O primeiro fato a se observar na execução dos
testes nas plataformas está no fato do Linux permitir a execução do MCNPX com
prioridade máxima, fazendo que este monopolize o processador durante a maior
parte do tempo que está sendo executado. Até mesmo a interface gráfica da
plataforma pode ser desativada para não interferir no processamento. Enquanto no
Windows o mecanismo não é tão eficaz, o sistema de prioridade do Windows se
torna falho com o tempo, deixando às vezes o processador ocioso e liberando pouco
processamento ao MCNPX. Além disso, não é possível desabilitar toda a interface
gráfica e manter todos os recursos disponíveis à simulação, como no Linux.
Durante o ciclo de testes seriais foi confirmada a diferença de desempenho
entre as plataformas. O Linux se mostrou, na maior parte das simulações, mais
eficiente que o Windows, conseguindo um desempenho médio 10% superior na
maioria dos testes. As tabelas Tabela 4 e Tabela 5mostram os tempos de colhidos
de cada execução do MCNPX.
Tabela 4– Tempo de execução do MCNPX no SO Linux Fedora 9 para testes seriais (em minutos).
Quantidade de Histórias
1,00E+03 1,00E+04 1,00E+05 1,00E+06 1,00E+07 1,00E+08
Fótons a 10 MeV
0,502 0,573 1,403 9,751 93,452 923,287
Elétrons a 30 MeV
0,551 0,742 2,528 20,310 198,582 1974,090
Fótons e Elétrons a 10 MeV
0,555 0,628 1,472 9,846 93,286 929,261
21
Tabela 5– Tempo de execução do MCNPX no SO Windows XP para testes seriais
(em minutos).
Quantidade de Histórias
1,00E+03 1,00E+04 1,00E+05 1,00E+06 1,00E+07 1,00E+08
Fótons a 10 MeV
0,532 0,597 1,491 10,457 99,836 990,428
Elétrons a 30 MeV
0,618 0,797 2,805 22,649 221,347 2205,017
Fótons e Elétrons a 10 MeV
0,6005 0,6792 1,5777 10,8107 102,7878 1023,9067
Pode-se ver claramente a diferença de velocidade entre as plataformas.
Simulando o transporte de elétrons a 30 MeV o Linux foi quase 231 minutos mais
rápido que o Windows em um teste com duração aproximada de 16 horas, o que
significa um ganho de mais de 10%. Essa diferença é vista com clareza nas
FigurasFigura 5 e Figura 6.
Figura 5- Comparativo do tempo de execução do MCNPX entre os SO Windows XP e Linux Fedora 9 para elétrons de30 MeV.
-12,00
-10,00
-8,00
-6,00
-4,00
-2,00
0,00
2,00
4,00
1,00E+03 1,00E+04 1,00E+05 1,00E+06 1,00E+07 1,00E+08
Tem
po
( %
)
Histórias
Tempo gasto no processamento de Elétrons
Windows
Linux
22
Figura 6- Comparativo do tempo de execução do MCNPX entre os SO Windows XP e Linux Fedora 9 para fótons com energia10 MeV.
As Figuras Figura 5 e Figura 6 ilustram os comparativos de tempo das
execuções do MCNPX nos sistemas operacionais Windows e Linux. Os gráficos
foram montados com os valores em porcentagem, tomando como valor de
parâmetro o tempo do SO Windows. Assim, este se apresenta sempre com ganho
de tempo constante em 0%. Consequentemente a linha que representa o Linux varia
de acordo com o ganho ou perda de tempo deste SO em relação ao Windows.
Assim quanto maior o ganho de tempo a representação do Linux se encontrará
abaixo e mais distante da linha do Windows.
Nos gráficos Figura 5 e Figura 6 fica evidente o melhor desempenho do Linux,
neste teste sendo representado pelo Fedora9. Sobretudo o Fedora foi mais rápido
na execução de elétrons a 30 MeV, chegando a ser 11% mais veloz em alguns
casos. Os testes executados demonstram a maior eficiência do Linux, sendo
superior ao Windows em todas as tomadas de tempo. Estes testes evidenciaram o
melhor gerenciamento da execução do MCNPX no Linux, e quantificaram o ganho e
a perda de desempenho em cada sistema testado.
3.1.2. Testes em arquitetura paralela
Completadas as tomadas de tempo em serial, foi verificado na literatura sobre
a possibilidade da instalação do MCNPX em clusters de computadores, recorreu-se,
-8,00
-7,00
-6,00
-5,00
-4,00
-3,00
-2,00
-1,00
0,00
1,00
2,00
1,00E+03 1,00E+04 1,00E+05 1,00E+06 1,00E+07 1,00E+08
Tem
po
( %
)
Histórias
Tempo gasto no processamento de Phótons
Windows
Linux
23
então, ao seu manual de instalação, o qual foi utilizado na instalação em ambiente
Windows e Linux no modo serial. No manual há um guia de instalação para
arquiteturas paralelas. Porém ao seguir passo-a-passo deste guia não obteve-se
uma versão do software funcionando corretamente. Ressaltando que o processo de
instalação indicado foi executado em duas distribuições (Fedora9 e Gentoo) do
Linux, sistema operacional baseado em UNIX, e em nenhuma obteve-se sucesso.
Após pesquisa exaustiva e diversas tentativas e erros, foi-se selecionado
materiais de diversas fontes (fóruns, livros, tutoriais on-line), os quais juntamente
com conhecimento acumulativo sobre possíveis erros e passos errados na
instalação, geraram um manual de instalação (Apêndice A). Este é capaz de guiar,
de maneira correta e unificada pelos principais passos para a instalação e
configuração do MCNPX em ambiente Windows e Linux, neste último com a
possibilidade de instalação paralelizada utilizando MPI.
Na segunda fase os testes foram executados em máquinas paralelas com a
energia dividida agora em 3 faixas: 1 MeV, 10 MeV e 30 MeV. Devido a pouca
diferença de desempenho medido na primeira fase entre as quantidades de energia
de 0.1 MeV e 1 MeV, optou-se por testar apenas as outras energias. Em relação à
quantidade de histórias foram consideradas três alternativas: 1,00E+05, 1,00E+06 e
1,00E+07. Os experimentos foram realizados utilizando o Gentoo Linux 64 bits em
um cluster semi-homogêneo composto por oito máquinas. Sendo que quatro destas
possuem, cada, um processador Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz,
cache L2 com 4096 KB. Outras duas possuem processador Intel(R) CPU 2160 @
1.80GHz e cache L2 com 1024 KB. Uma delas com um processador Intel(R)
Pentium(R) Dual CPU E2140 @ 1.60GHz e cache L2 com 1024 KB. E a última com
um processador Intel(R) Pentium(R) D CPU 2.80GHz e cache L2 com 2048 KB.
As características da técnica de paralelização do MCNPX consistem em criar
n processos sendo que 1 é o processo mestre, que divide e sincroniza a
comunicação entre os n-1 processos escravos restantes. O nó mestre divide o
código para ser processado em n-1 partes e gerencia a junção de todas as partes
novamente.
Diferenças na configuração de máquinas que pertencem a um cluster
interferem diretamente no seu bom aproveitamento, no que diz respeito à
distribuição e balanceamento da carga. Mas apesar desta questão o desempenho
do MCNPX ao ser executado em paralelo foi satisfatório, conseguindo speedup
24
linear em boa parte dos testes. O speedup é a razão do tempo de execução da
aplicação em um processador pelo tempo de execução em N processadores. Assim
quanto maior for o valor do speedup, maior foi à eficiência na execução paralela do
aplicativo.
As Figuras 7 a 10 mostram o desempenho do MCNPX quando executado no
cluster com 1, 2, 4 ou 8 processadores (sendo um processo por máquina) e o
speedup conseguido nos testes. Como era esperado só há ganho de desempenho
na execução paralela quando o problema a ser simulado demanda grande poder
computacional e um longo tempo de processamento. Sendo assim é mais indicado o
uso de máquinas paralelas para o MCNPX em problemas que se executam por pelo
menos algumas horas em arquitetura serial, o que acontece na grande maioria das
simulações.
Figura 7- SpeedUp do MCNPX, de 1 a 8 processadores, ao simular elétrons com energias 10 e 30 MeV, e 106 e 107 histórias.
1
2
3
4
5
6
7
8
1 2 3 4 5 6 7 8
Sp
eed
up
Quantidade de Processadores
Speedup ao Simular Elétrons no MCNPX
Ideal
Elétrons 10 MeV (1x10⁶ histórias)
Elétrons 10 MeV (1x10⁷ histórias)
Elétrons 30 MeV (1x10⁶ histórias)
Elétrons 30 MeV (1x10⁷ histórias)
25
Figura 8- SpeedUp do MCNPX, de 1 a 8 processadores, ao simular fótons com energias 1 e 10 MeV, e 106 e 107 histórias.
Ao observar as figuras Figura 7 e a Figura 8 nota-se que quanto maior a
quantidade de histórias (1,00E+07) maior o speedup alcançado. Isso se deve ao
fator de balanceamento onde quanto maior for o número de repetições executados
por cada nó, sem comunicação entre eles, maior será o speedup, Já que o maior
fator limitante no desempenho dos clusters é a comunicação entre os nós.
As figuras abaixo relacionam o tempo demandado pela execução do MCNPX
com quantidades de processadores, ou máquinas, diferentes.
1
2
3
4
5
6
7
8
1 2 3 4 5 6 7 8
Sp
eed
up
Quantidade de Processadores
Speedup ao Simular Fótons no MCNPX
Ideal
Fótons 1 MeV (1x10⁶ histórias)
Fótons 1 MeV (1x10⁷ histórias)
Fótons 10 MeV (1x10⁶ histórias)
Fótons 10 MeV (1x10⁷ histórias)
26
Figura 9- Tempo de execução do MCNPX de 1 a 8 processadores, ao simular elétrons com energias 10 e 30 MeV, e 106 e 107 histórias.
Figura 10- Tempo de execução do MCNPX de 1 a 8 processadores, ao simular fótons com energias 1 e 10 MeV, e 106 e 107 histórias.
As figuras Figura 9 e Figura 10 mostram a curva de tempo em relação à
quantidade de processadores na execução problema. É possível identificar que
0
50
100
150
200
250
300
350
400
450
500
1 2 3 4 5 6 7 8
Tem
po
Quantidade de Processadores
Tempos ao Simular Elétrons no MCNPX
Elétrons 10 MeV (1x10⁶ histórias)
Elétrons 10 MeV (1x10⁷ histórias)
Elétrons 30 MeV (1x10⁶ histórias)
Elétrons 30 MeV (1x10⁷ histórias)
0
50
100
150
200
250
300
1 2 3 4 5 6 7 8
Tem
po
Quantidade de Processadores
Tempos ao Simular Fótons no MCNPX
Fótons 1 MeV (1x10⁶ histórias)
Fótons 1 MeV (1x10⁷ histórias)
Fótons 10 MeV (1x10⁶ histórias)
Fótons 10 MeV (1x10⁷ histórias)
27
quanto mais demorada for a execução do MCNPX maior é vantagem ao utilizar uma
grande quantidade de processadores.
O cluster usado nos testes do MCNPX está configurado visando o aumento
de desempenho do MCNPX, nele está instalado o compilador Intel para linguagem C
e Fortran versão 10 com suas bibliotecas atualizadas. O compilador está instalado
com a versão mais nova e com diretivas de otimização para cada máquina. Além do
compilador Intel, para aproveitar a opção de paralelismo do MCNPX foi instalada o
MPICH2 com a versão mais nova de todas as suas bibliotecas. Assim o LCC agora
obtém uma versão personalizada do código MCNPX que alcança o máximo
desempenho na infraestrutura de hardware disponível.
28
4. CÁLCULO DOS COEFICIENTES DE CONVERSÃO
Os CCs são uma alternativa confiável e barata para estimar as doses
absorvidas por órgão e tecidos radio-sensíveis do corpo humano na presença de
radiação ionizante. Uma vez conhecidos os CCs podemos medir grandezas
operacionais como a Kerma e a Fluência, e em seguida e a partir destas medidas
estimar a dose em órgãos e tecidos.
Para calcularmos os CCs seguimos o processo inverso, utilizamos um código
de simulação de Monte Carlo e um fantoma detalhado do corpo humano.
Realizamos uma simulação probabilística do transporte de radiação e
correlacionamos as doses absorvidas em órgão e tecidos com as grandezas
operacionais. Esta metodologia introduz aproximações que podem comprometer a
precisão dos CCs computados. Entre estas aproximações estão: o detalhamento e
precisão do fantoma utilizado, o código computacional utilizado e a precisão das
simulações, geralmente ligada ao número de histórias de cada partícula.
Outro problema é que os CCs caracterizam o homem de referência, isto é um
homem com estatura, peso e complexão, que refletem a media da população
mundial. Consequentemente, numerosos grupos étnicos estão muito distantes deste
homem de referência, para aliviar esta situação alguns países desenvolvem seus
próprios fantomas que aproximam melhor sua população. Entre estes países
encontra-se Brasil que desenvolveu os fantomas MAX e FAX (KRAMER, 2003;
KRAMER, 2004).
O cálculo dos CCs é uma tarefa que exige alto custo computacional em
termos de quantidade de memória e tempo de processamento. Este alto custo é
motivado pela necessidade de fantomas detalhados, acompanhamento de um
número elevado de partículas, códigos probabilísticos que considerem reação
secundaria. Também é necessário considerar diferentes partículas e varias
geometrias de irradiação.
Nesta seção apresentamos os CCs para o fantoma brasileiro MAX06 para
fótons e elétrons secundários para os principais órgãos e tecidos radio-sensíveis. O
código computacional utilizado é o MCNPX e as simulações foram realizadas no
cluster do LCC. As doses absorvidas médias em órgãos foram calculadas para uma
irradiação simulada de corpo inteiro com um feixe de fótons e elétrons
29
monoenergéticos de energias que variam de 10 keV a 10 MeV. O feixe incide na
direção anteroposterior (AP) do simulador do corpo humano, considerada a mais
crítica (ZANKL, et al.,1997). Essa geometria de irradiação é mostrada na Figura 11.
Figura 11– Geometria de irradiação anteroposterior (AP) utilizada para calcular os coeficientes de conversão neste trabalho.
As figuras Figura 12 a Figura 18 ilustram os coeficientes calculados durante o
projeto para os órgãos e tecidos: pele, fígado, esôfago, lentes dos olhos, testículos,
tireóide e pulmões. Os resultados obtidos para o MAX são comparados com os CCs
recomendados pela ICRP 74 (ICRP 74, 1996) e os publicados para o fantomas de
voxel chinês CAM (Chinês Adult Man) (LIU, 2009). Os CCs recomendados pela
ICRP 74 foram calculados utilizando o fantomas matemático MIRD-5 e
desconsiderando os elétrons secundários na simulação.
30
Figura 12– Comparação dos CCs da pele na geometria AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74.
Figura 13 - Comparação dos Coeficientes de Conversão do fígado na geometria AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74.
0,00E+00
2,00E-01
4,00E-01
6,00E-01
8,00E-01
1,00E+00
1,20E+00
10
15
20
30
40
50
60
70
80
10
015
020
030
040
050
060
080
010
00
20
00
40
00
60
00
80
00
10
000
H/K
ar
(Sv
/Gy)
Fótons + elétrons (keV)
PELE
MAX_06
ICRP74
CAM
0,00E+00
2,00E-01
4,00E-01
6,00E-01
8,00E-01
1,00E+00
1,20E+00
1,40E+00
1,60E+00
1,80E+00
10
15
20
30
40
50
60
70
80
10
015
020
030
040
050
060
080
010
00
20
00
40
00
60
00
80
00
10
000
H/K
ar
(Sv
/Gy)
Fótons + elétrons (keV)
FÍGADO
MAX_06
ICRP74
CAM
31
Figura 14 - Comparação dos Coeficientes de Conversão do esôfago na geometria AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74.
Figura 15 - Comparação dos Coeficientes de Conversão da lente dos olhos na geometria AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74.
0,00E+00
2,00E-01
4,00E-01
6,00E-01
8,00E-01
1,00E+00
1,20E+00
1,40E+00H
/Kar
(Sv
/Gy)
Fótons + elétrons (keV)
ESÔFAGO
MAX_06
ICRP74
CAM
0,00E+00
2,00E-01
4,00E-01
6,00E-01
8,00E-01
1,00E+00
1,20E+00
1,40E+00
1,60E+00
1,80E+00
H/K
ar (
Sv/G
y)
Fótons + elétrons (keV)
LENTE DOS OLHOS
MAX_06
ICRP74
CAM
32
Figura 16- Comparação dos Coeficientes de Conversão dos testículos na geometria AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74.
Figura 17- Comparação dos Coeficientes de Conversão dos testículos na geometria AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74.
0,00E+00
5,00E-01
1,00E+00
1,50E+00
2,00E+00
2,50E+00H
/Kar
(Sv
/Gy)
Fótons + elétrons (keV)
TESTÍCULOS
MAX_06
ICRP74
CAM
0,00E+00
5,00E-01
1,00E+00
1,50E+00
2,00E+00
2,50E+00
H/K
ar (
Sv/G
y)
Fótons + elétrons (keV)
TIREÓIDE
MAX_06
ICRP74
CAM
33
Figura 18- Comparação dos Coeficientes de Conversão dos testículos na geometria AP entre os fantomas MAX06, CAM e as recomendações da ICRP 74.
Observando as Figuras 12 a 18 podemos constatar que de forma geral existe
uma boa concordância entre os CCs obtidos para o MAX06, os recomendados pela
ICRP 74 e os publicados para CAM. As maiores diferenças aparecem para a pele e
a lente dos olhos a altas energias, estas diferenças estão justificadas nas
aproximações do MIRD-5 para estes tecidos e na consideração da ICRP 74 dos
elétrons secundários na simulação. Entre os fantomas de voxel MAX06 e CAM
existe uma boa concordância em todos os tecidos e órgão considerados, o que
mostra que as simulações realizadas refletem o estado da arte nesta área de
pesquisa.
0,00E+00
2,00E-01
4,00E-01
6,00E-01
8,00E-01
1,00E+00
1,20E+00
1,40E+00
1,60E+00
H/K
ar (
Sv/G
y)
Fótons + elétrons (keV)
PULMÕES
MAX_06
ICRP74
CAM
CMP
34
5. CONCLUSÕES E TRABALHOS FUTUROS
Este trabalho de pesquisa resultou na instalação e configuração
personalizada do MCNPX em Windows e Linux, em uma versão para o cluster do
Laboratório de Computação Científica, e em um manual de instalação completo em
sistemas Linux. Também foram feitas medidas e comparações do desempenho do
MCNPX entre os ambientes onde este foi instalado, sistemas com execução serial,
computador comum (monoprocessado); e com computação paralela, clusters de
computadores (multiprocessados).
Os testes evidenciaram o melhor desempenho do MCNPX em Linux. Os
tempos de execução neste SO foram, em média, 10% inferiores em relação ao
Windows. Os resultados foram ainda mais surpreendentes em se tratando da
execução paralela. Utilizando deste recurso foi confirmado speedup na média de
0.88p, onde p representa a quantidade de processadores. Estes valores comprovam
um aumento de aproximadamente 88% no desempenho em relação à execução
serial, para cada processador adicionado ao cluster.
Estas conclusões incentivam as pesquisas no acréscimo da utilização deste
software para simulação computacional em radioproteção. O estudo do seu
desempenho e a sua instalação otimizada tornara sua utilização eficiente,
conseguindo resolver, em horas, problemas de simulações que antes demandavam
dias.
Como complemento foram calculados os coeficientes de conversão para
estimar a dose equivalente nos órgãos mais radio-sensíveis do fantoma MAX06,
listados na ICRP 60. Os valores H/Kar, crescem com o aumento da energia,
alcançando um máximo entre 80 keV e 100 keV, e, então diminuem lentamente com
o acréscimo de energia do fóton. Essa variação pode ser explicada pela forte
tendência do fóton de ser espalhado com energia em torno de 80 keV (ZANKL et.
al., 1997).
Os valores de CCs computados foram comparados com os recomendados e
utilizados pela ICRP 74 e com os calculados para o fantomas chinês CAM, visando
comprovar a precisão e eficiência da simulação e do fantoma MAX06. Os CCs para
a dose equivalente foram calculados para a geometria de irradiação AP. O erro
médio encontrado para esta geometria foi 9,8%.
35
Os resultados alcançados permitem concluir que o fantoma MAX06
juntamente com o código de Monte Carlo MCNPX estão capacitados para calcular
doses equivalentes em órgãos ou tecidos, pelo fato de apresentarem razoável
concordância com os dados obtidos para outros modelos matemáticos e de voxels
existentes na literatura (ICRP 74 referencia ao CAM). Os fantomas antropomórficos
de voxels, devido a sua representação mais realística da anatomia humana,
possivelmente substituirão os fantomas matemáticos em um futuro não muito
distante.
Trabalhos futuros serão executados visando calcular os CCs para as outras
geometrias de irradiação no fantoma MAX: postero-anterior (PA), lateral esquerda
(LLAT), lateral direita (RLAT), rotacional (ROT) e isotrópica (ISO). Posteriormente,
também calcular os CCs para o fantoma feminino FAX06 e outros fantomas mais
modernos como MASH e o FASH (KRAMER, 2010).
36
6. REFERÊNCIAS BIBLIOGRÁFICAS
ALMASI, G.S.;GOTTLIEB, A. Highly Parallel Computing. 1. Ed. Estados Unidos: Menlo Park, CA (USA): Benjamin-Cummings Pub. Co, janeiro de 1988. 519 p.
BOZKURT, A.Assessment of Organ Doses from Expousure to Neutrons Using the Monte Carlo Technique and an Image-Based Anatomical Model. Doctor Thesis, Rensselaer Polytechnic Institute Troy. New York, 2000.
CHAO, T. The Development and Aplication of a Tomographic Whole-Body Model for Monte Carlo Organ Dose Calculation. DoctorThesis, RensselaerPolytechnicInstitute Troy, New York, 2001.
CORDEIRO, T. P. Vieira. Cálculo dos Coeficientes de Conversão para Dose Efetiva para Nêutrons Utilizando Simulador Antropomórfico de Voxels. Rio de Janeiro: UFRJ/COPPE, 2009. 97 p.
FOSTER, R. Arthur. et. al. MCNP(TM) Version 5.Nuclear Instruments and Methods in Physics Research Section B: Beam Interactions with Materials and Atoms. Janeiro de 2004.
ICRP 60, Recommendations of the International Commission on Radiological Protection. International Commission on Radiological Protection. Pergamon Press. Oxford, 1991.
ICRP 60, Recommendations of the International Commission on Radiological Protection. International Commission on Radiological Protection. Pergamon Press. Oxford, 1991.
ICRP 74, Conversion Coefficients for use in Radiological Protection Against External Radiation. International Commission on Radiological Protection. Pergamon Press, Oxford, 1996.
ICRP 103, The 2007 Recommendations of the International Commission on Radiological Protection. International Commission on Radiological Protection. Pergamon Press. Oxford, 2007.
KRAMER, R. et. al. All About MAX: a Male Adult Voxel Phantom For Monte Carlo Calculation in Radiation Protection Dosimetry. Phys. Med. Biol., 48, 1239-1262, 2003.
KRAMER, R. et. al. All About FAX: a Female Adult Voxel Phantom For Monte Carlo Calculation in Radiation Protection Dosimetry. Phys. Med. Biol., 49, 5203-5216, 2004.
KRAMER, R. et. al. FASH and MASH: female and male adult human phantoms based on polygon mesh surfaces: I. Development of the anatomy. Phys. Med. Biol. 55 133, 2010
37
LIU, Liye. et.al. Organ dose conversion coefficients on an ICRP-based Chinese adult male voxel model from idealized external photons exposures.Phys. Med. Biol. 54, 6645–6673, 2009.
PELOWITZ, Denise B. MCNPXTM USER’S MANUAL: Version 2.6.0. 1. Ed. 2008. 549 p.
REIS JÚNIOR, Juraci P. Cálculos dos Coeficientes de Conversão para Dose Efetiva em Termos do Kerma no Ar para Fótons Utilizando Simulador Antropomórfico de Voxels e o Código MCNPX. Rio de Janeiro: COPPE, 2007. 74 p.
SANTOS, L. A. M. Fatores de atenuação em termos da dose efetiva para feixes de raios X utilizado em radiodiagnóstico. Rio de Janeiro: UFRJ/COPPE, 2010. 64 p.
SILVA, Cely P. da. Como funciona a radiação. How Stuff Works: como tudo funciona. Conteúdo on-line. Publicado em 23 de novembro de 2007 (atualizado em 10 de dezembro de 2007). Disponível em: <http://ciencia.hsw.uol.com.br/radiacao.htm>. Acesso em15 de junho de 2010.
SILVA, G. M. Guia Foca GNU/Linux.©Copyleft. Conteúdo on-line. 2008. Disponível em: < http://focalinux.cipsga.org.br/>. Acesso em 08 de junho de 2010.
SOLCHENBACH, K. Grid applications on distributed memory architectures: Implementation and evaluation. Parallel Computing. 3 ed. Volume 7. Setembro de 1988.
VIEIRA, José W. Construção de um modelo computacional de exposição para cálculos dosimétricos utilizando o código Monte Carlo EGS4 e fantomas de voxels. Recife: O Autor, 2004. 88 p.
X-5 Monte Carlo Team, 2003. MCNP – A General Monte Carlo N-Particle Transport Code, Version5, Volume I: Overview and Theory, LA-UR-03-1987. Los Alamos NationalLaboratory, USA.
VERGARA, M. Dosis al feto en radiodiagnostico. Rev. chil. radiol.; Volume 1, 2005.
ZANKL, M. et. al. The Calculation of Dose from External Photon Expousures Using Reference Human Phantoms and Monte Carlo Methods: Part. VII. Organ doses due to parallel and Environmental Exposures Geometries GSF-Report, agosto de 1997.
38
APÊNDICE
APÊNDICE A - Manual de Instalação do MCNPX 2.6
39
Universidade Estadual de Santa Cruz
Departamento de Ciências Exatas e Tecnológicas
Ciência da Computação NBCGIB –LCC
MANUAL DE INSTALAÇÃO DO MCNPX
Código Monte Carlo N-ParticleeXtended Versão 2.6
Autor:
Hélder Almeida
Ilhéus, BA 25 de Setembro de 2009
40
SUMÁRIO
1. DESEMPENHO DOS SISTEMAS OPERACIONAIS
O objetivo do projeto foi descobrir em qual sistema operacional o MCNPX
obteria o melhor desempenho na sua execução. Sendo assim após instalação no
Windows XP, Fedora9 e Gentoo ficou comprovado que a instalação do MCNPX 2.6
no Windows XP, apesar de ser a mais fácil, teve o pior desempenho, obtendo
tempos para as simulações, em média, 12% mais lenta que o mais rápido, o SO
Gentoo. O Fedora9 conseguiu tempos muito próximos aos do Windows XP nos
resultados.
2. CONFIGURAÇÕES ESPECIAIS
Antes de começar a instalação é necessário prestar atenção a algumas
configurações especiais que podem ser necessárias para que o MCNPX execute as
simulações de maneira correta.
O MCNPX vem com algumas limitações que em alguns casos devem ser
corrigidas para atender algumas simulações, entre as principais limitações estão o
valor de apenas 100 tallies para as simulações e máximo de 20 detectores. Para
modificar estes valores o processo é simples, apenas modificar as respectivas
variáveis no código fonte adicionando os valores desejados. Para facilitar este
processo, abaixo seguem encontrar as principais variáveis para fazer as
modificações.
Atenção! Para simular os arquivos do FAX e MAX 06 com todo o corpo é
necessário modificar apenas o valor da variável “NTALMX” para pelo menos 200,
todas as outras podem continuar com seus valores padrões.
1. NTALMX – determina o número máximo de tallies para as simulações.
Onde encontrar: na linha 15 do arquivo “src/mcnpx/mcnpf/IMCN_jc.F”:
integer(kindi),parameter :: ntalmx = 100 !/*mid5e 2*/
2. MXDT – define a quantidade de detectores:
41
Onde encontrar: na linha 72 do arquivo
“src/mcnpx/mcnpf/GLOBAL1_zc.F”:
integer(kindi), parameter :: mxdt = 20!/*mgp5e48*/
3. SISTEMA OPERACIONAL WINDOWS XP
Apesar de mais lento o Windows XP tem a grande vantagem da facilidade na
instalação. Isso se deve ao fato do código já vir compilado e pronto para executar.
Basta apenas algumas etapas de configuração para que tudo esteja pronto.
Observando este aspecto, é altamente indicada a instalação do MCNPX em
ambiente Windows para execução de pequenas simulações com propósito de testar
arquivos de entrada e outras características que não necessitam, em primeiro lugar,
de melhor desempenho.
3.1. InstalaçãoPadrão
O MCNPX já vem previamente compilado para plataforma Windows, sendo
que sua instalação se dá apenas por copiar a estrutura de diretórios, juntamente
com as bibliotecas e executáveis para uma pasta de escolha do usuário.
Os próximos passos exemplificam a instalação e uso do MCNPX no Windows XP:
1. Localize os arquivos compilados e compactados do MCNPX, geralmente
nomeados com “Win32.zip”, assim como o arquivo “DATA.tar.gz”
contendo as bibliotecas;
2. Crie uma pasta “MCNPX” em um drive com espaço suficiente ~3GB ;
3. Descompacte o arquivo “Win32.zip” dentro da pasta “MCNPX”.
Dependendo da versão do arquivo pode ser criada outra pasta que
contenha os subdiretórios \Bind e \Data. Se acontecer, simplesmente
mova estes subdiretórios de volta para a pasta “MCNPX”;
4. Agora descompacte o arquivo “Data.tar.gz” extraindo os arquivos dentro
da pasta “MCNPX\Data”. Caso não exista um arquivo chamado “xsdir”
neste subdiretório, então copie “xsdir1” para“xsdir”;
5. Assumindo que o diretório do MCNPX tenha sido criado no drive C:,
defina a variável ambiente “DATAPATH” para o endereço
42
“C:\MCNPX\Data\”; e acrescente à variável “PATH” o caminho
“C:\MCNPX\BIN”;
6. O MCNPX está pronto para ser utilizado, bastando para isso abrir o
Prompt de Comando do Windows e executar:
C:>mcnpxinp=test ...
3.2. Recompilando
Para modificar o código e/ou recriar os executáveis será necessário ter
instalado o compilador Compaq Visual Fortran (CVF – versão 6.1 ou superior) ou o
compilador Intel (Versão 8.0 ou superior). Com estes compiladores já instalados
deve-se seguir estes passos:
1. Localize os arquivos do código fonte do MCNPX, geralmente nomeados
com “vXXX.tar.gz”.
2. Crie uma pasta “MCNPX” em um drive com espaço suficiente ~3GB).
Descompacte o arquivo “vXXX.tar.gz” dentro do diretório “MCNPX”.
3. Abra o Prompt de Comando, crie um diretório para construção do MCNPX
e navegueaté este.
mkdirmcnpx_bld cdmcnpx_bld ..\mcnpx\configure
O arquivo em lote “configure” está localizado dentro do diretório criado no
passo 2. Existem 3 opções para o comando configure:
I8 – Constrói uma versão compatível com inteiros de 8 bytes.
MPI – Constrói uma versão para MPICH.
CVF- Constrói uma versão usando o compilador CVF.
A opção padrão (quando as opções acima não são usadas) é compilar o
código usando o compilador Intel. Exemplificando, para construir uma versão do
MCNPX utilizando inteiros de 8 bytes e com suporte a MPICH o comando deveria
ser:
..\MCNPX\configure I8 MPI
“O manual do MCNPX informa que o compilador Intel produz um executável
43
cerca de 25% mais veloz que os executáveis do CVF.”
Depois de executar o comando configure alguns arquivos específicos para
uma compilação para Windows serão descompactados.
4. Assumindo que o diretório do MCNPX tenha sido criado no drive
C:,acrescente à variável “PATH” o caminho “C:\MCNPX\BIN”.
5. Agora pode-se executar o GNU Make digitando “MAKE” no prompt de
Comando:
cdmcnpx_bld cdsrc\Test make
6. O MCNPX está pronto para ser utilizado, bastando para isso abrir o
Prompt de Comando do Windows e executar:
C:>mcnpxinp=test ...
3.3. Dados Cross–section
Todas as bibliotecas adicionais necessárias para simular determinados tipos
de partículas (Bertin, etc.) devem ser adicionadas no diretório “MCNPX\Data”.
4. SISTEMA OPERACIONAL LINUX (FEDORA 9 + GENTOO + DEBIAN)
No SO Linux o MCNPX precisa ser compilado para que funcione
corretamente. Após alguns testes, ficou clara a diferença de desempenho entre as
plataformas (32 e 64 bits), sendo o desempenho da plataforma 64 bits sempre
superior.
As distribuições Linux abordadas neste manual são Fedora9 e GENTOO.
4.1. Instalação no Fedora9 (serial)
O Fedora9 não obteve resultados de desempenho muito superiores aos do
Windows XP, e ainda foi o SO onde a instalação do MCNPX deu mais trabalho,
devido à falta de bibliotecas para os compiladores. Contudo neste foi feito a maior
44
parte da bateria de testes seriais (sem MPICH), devido à disponibilidade de
equipamentos na data de execução do projeto.
Exclusivamente no Fedora9 foi instalado o compilador Intel (versão gratuita),
para fins comparativos com o GCC e Gfortran. Os resultados foram favoráveis ao
primeiro compilador, porém com uma diferença muito pequena. Abaixo é exibido um
passo-a-passo resumido da instalação do compilador Intel na versão 11.069 para
plataforma 32 bits.
4.1.1. Compilador C++ Intel 11.069 (32 bits e 64 bits)
Instalação do Compilador C++ INTEL 11.069 no FEDORA 9 usando
plataforma Intel 32 bits:
1. Primeiramente é preciso instalar algumas bibliotecas requeridas pelo
compilador. Usando o FEDORA 9 com o GNOME a única biblioteca
necessária que não está instalada por default é “libstdc++.so.5”. Para
instalá-la execute a sequência de comandos:
yumlistavailable | greplibstdc
Será listado todos os pacotes disponíveis para o download. Anote o nome do
pacote mais atual.
yuminstall<nome do pacote que anotou>
2. Criar, caso não exista, os diretórios:1
mkdir /opt/intel/cc/11/069/ /opt/intel/licenses/
3. Colocar os arquivos de licenças dentro do diretório “/opt/intel/licenses/”
4. Extrair o conteúdo do arquivo “.tgz” com o compilador adquirido.
5. Entrar no diretório criado após a extração.
cd<diretório>
6. Executar o gerenciador de Instalação:
./install.sh
45
7. Siga os passos do gerenciador.
8. Leia o passo .
4.1.2. Compilador Fortran 90 Intel 11.069 (32 bits e 64 bits)
Instalação do Compilador Fortran 90 INTEL 11.069 no FEDORA 9 usando
plataforma Intel 32 bits:
1. Primeiramente é preciso instalar algumas bibliotecas requeridas pelo
compilador. Usando o FEDORA 9 com o GNOME a única biblioteca
necessária que não está instalada por default é “libstdc++.so.5”. Para
instalá-la execute a sequência de comandos:
yumlistavailable | greplibstdc
Será listado todos os pacotes disponíveis para o download. Anote o nome do pacote
mais atual.
yuminstall<nome do pacote que anotou>
2. Criar, caso não exista, os diretórios:
mkdir /opt/intel/fc/11/069/ mkdir /opt/intel/licenses/
3. Colocar os arquivos de licenças dentro do diretório “/opt/intel/licenses/”
4. Extrair o conteúdo do arquivo “.tgz” com o compilador adquirido.
5. Entrar no diretório criado após a extração.
cd<diretório>
6. Executar o gerenciador de Instalação:
./install.sh
7. Siga os passos do gerenciador.
8. Leia o passo .
4.1.3. Configurando as Variáveis de Ambiente
Após instalar o compilador Intel seguindo os passos anteriores, é necessário
46
configurar algumas variáveis para que o compilador funcione normalmente. Seguem
as etapas necessárias:
1. Edite o arquivo “/etc/profile”, acrescentando as seguintes linhas ao fim do
arquivo:
IA32ROOT=$IA32ROOT:/opt/intel/Compiler/11.0/069/ INTEL_FLEXLM_LICENSE=$INTEL_FLEXLM_LICENSE:/opt/intel/licenses LDPATH=$LDPATH:/opt/intel/Compiler/11.0/069/lib/ia32/ MANPATH=$MANPATH:/opt/intel/Compiler/11.0/069/man/ PATH=$PATH:/opt/intel/Compiler/11.0/069/bin/ia32 ROOTPATH=$ROOTPATH:/opt/intel/Compiler/11.0/069/bin/ia32 export IA32ROOT INTEL_FLEXLM_LICENSE LDPATH MANPATH PATH ROOTPATH
2. Reinicie o computador.
3. Para testar vá ao terminal e digite:
ifort –v icc –v
No bash, deverá retornar Version 11.0 para cada um dos comandos.
4.1.4. Instalando o MCNPX
Após a instalação bem sucedida dos compiladores os próximos passos
consistem em extrair, compilar e testar o MCNPX. A instalação no Fedora 9 se deu
exatamente como noGentoo, sendo que todas as complicações encontradas foram
referentes ao compilador não encontrar suas bibliotecas. Após definidas as Variáveis
de Ambiente citadas acima, toda a instalação ocorreu de maneira tranquila. Portanto
para consultar sobre a compilação do MCNPX os passos são os mesmos dos
indicados para o Gentoo (b. Instalação no Gentoo (serial e paralelo)).
4.2. Instalação no Gentoo (serial e paralelo)
Dentre as opções de distribuições Linux disponíveis no LCC na época da
execução do projeto (Fedora9 e Gentoo) , o Gentoo obteve o melhor desempenho.
Além disso, as instalações serial e paralela do MCNPX ocorreram sem surpresas. A
próxima parte do manual descreve o processo de compilação e instalação do
MCNPX utilizando os compiladores Intel (C++ e FORTRAN 90 sem utilizar a
47
biblioteca do MPICH). Em seguida será demonstrado algo semelhante, com a
diferença dos compiladores usados serem o GNU GCC e o Gfortran, também sem
fazer uso das livrarias do MPICH. Por último é abordada a instalação do MCNPX
com MPICH, porém apenas utilizando os compiladores GNU.
É recomendado não fazer o processo de construção dos objetos e estruturas
da instalação em um diretório diferente do da instalação final. Para isso, crie um
diretório qualquer ex. “/tmp/mcnpx_install/” e execute os comandos de compilação
e instalação de dentro dele.
4.2.1. Compiladores Intel (C/C++ e Fortran 90) sem MPI
As versões testadas dos compiladores Intel foram 9.1.036 para o compilador
Fortran90 (ifort ou ifc) e 9.1.042 para o compilador C/C++ (icc).
1. Tenha certeza que o compilador está corretamente instalado e que as
variáveis abaixo foram definidas corretamente:
IA32ROOT=/opt/intel/compiler91 INTEL_FLEXLM_LICENSE=/opt/intel/compiler91/licenses LDPATH=/opt/intel/compiler91/lib MANPATH=/opt/intel/compiler91/man PATH=/opt/intel/compiler91/bin ROOTPATH=/opt/intel/compiler91/bin
As variáveis acima são necessárias para o compilador
2. Descompacte o arquivo “.tar” que contém os arquivos com o código fonte
do MCNPX e execute o script “configure” com as opções abaixo supondo
que você vá instalar o MCNPX em /usr/local/mcnpx e que os executáveis
dos compiladores tenham os nomes “ifort” e “icc” para as linguagens
Fortran e C/C++, respectivamente.)
$ ./configure --prefix=/usr/local/mcnpx --with-FC=ifort \ --with-CC=icc \ --host=i686-pc-linux \ --with-FFLAGS=-i8 \ --with-FFLAGS="-DUNIX=1 -DLINUX=1" \ --with-CFLAGS="-DUNIX=1 -DLINUX=1" \ --with-NOCHEAP
Entendendo o comando...
“--prefix=/usr/local/mcnpx” informa o local onde os executáveis serão
48
compilados necessária a existência destes diretórios ; “--with-FC=ifort” informa o
nome do compilador Fortran; “--with-CC=icc” informa o nome do compilador C/C++;
“--host=i686-pc-linux” informa a plataforma do computador, somente pra informação
ao software; “--with-FFLAGS=-i8” e “--with-NOCHEAP” indicam ao compilador
Fortran a possibilidade de trabalhar com inteiro de 8 bytes; “--with-FFLAGS="-
DUNIX=1 -DLINUX=1"” e “--with-CFLAGS="-DUNIX=1 -DLINUX=1"” serve para que
o compilador interprete os códigos fontes com codificação específica para UNIX /
LINUX, previnindo possíveis erros lexos. Para mais opções consultar o manual de
instalação do MCNPX 2.6.
3. Após executar este script os objetos e os makefiles para a compilação já
estarão prontos, faltando apenas executar o comando “make”.
$ make
ATENÇÃO!
Antes de executar o comando “maketests” é necessário alterar um
arquivo “Makefile.h” para que os testes ocorram sem erros. Altere o arquivo
“/tmp/mcnpx_install/src/test/Makefile.h” nas linhas que contém as variáveis
“TARCH”, “TSYS”, “TFC” e “TCC” e as deixe assim:
TARCH = intel TSYS = linux TFC = ifc TCC = icc
Só então execute os commandos abaixo:
$ maketests $ makeinstall
Feito isto, o MCNPX já se encontra instalado. Mas para que seu
funcionamento ocorra sem problemas ainda é necessária a definição de algumas
variáveis de ambiente.
4. Antes de executar o MCNPX é necessário definir as variáveis de
ambiente “PATH” e “DATAPATH”. Isso pode ser feito editando o arquivo
“.bashrc” de cada usuário ou utilizando uma definição global, que pode
ser encontrada no “/etc/bash/bashrc” ou “/etc/bash.bashrc” dependendo
da distribuição do Linux.
49
PATH=/usr/local/mcnpx/bin DATAPATH=/usr/local/mcnpx/DATA
Assumindo que o local de instalação tenha sido em “/usr/local/mcnpx/” os
valores acima devem estar inclusos no caminho das variáveis de ambiente.
5. Colocar as biblioteca utilizadas nos cálculos dentro da pasta “DATA”.
Verifique se o seu diretório “lib” contém as livrarias “phtlib”, “bertin” e
“barpol.dat”. Se não existirem estas livrarias então é necessário instalá-
las. Caso existam é necessário criar um link dessas livrarias dentro da
pasta “DATA”. Para isso basta seguir os passos:
$ cd /usr/local/mcnpx/DATA $ ln -s ../lib/phtlib . $ ln -s ../lib/bertin . $ ln -s ../lib/barpol.dat .
Verifique se existe o arquivo “mcnpx/DATA/xsdir”, caso não esteja presente copie o
arquivo xsdir1 para um outro chamado xsdir.
6. Se as variáveis de ambiente e as bibliotecas foram configuradas e
instaladas corretamente o sistema deverá responder corretamente à
chamada do programa MCNPX.
4.2.2. Compiladores GNU (C/C++ e Fortran 90) sem MPI
A versão testada dos compiladores foi a 4.2.
1. Durante o processo de compilação do MCNPX o compilador de Fortran 90
deve ser chamado de “f90”, então é necessário criar um link simbólico
entre o “gfortran” e “f90”.
$ cd /usr/i686-pc-linux-gnu/gcc-bin/4.1.1 $ ln -s gfortran f90
2. Decompacte o arquivo “.tar” que contenha os arquivos do código fonte do
MCNPX. Para que o compilador GNU funcione corretamente no próximo
passo é necessário modificar algumas partes do código de cinco arquivos
escritos em Fortran. São eles:
src/bertin/getexm.F src/htape3x/getexm.F
50
src/mcnpx/mcnpf/getexm.F src/phtlib/mcnpf/getexm.F src/xsex3/getexm.F
Em cada um destes modifique a seguinte linha:
integer(ki4), external :: iargc !/*ge5f 8*/
Transformando-a em:
integer(ki4) :: iargc !/*ge5f 8*/
3. Execute o script “configure” com as opções abaixo (supondo que queira
instalar o MCNPX em “/usr/local/mcnpx/” :
$ ./configure --prefix=/usr/local/mcnpx \ --with-FC=f90 \ --with-CC=gcc \ --host=i686-pc-linux \ --with-FFLAGS=-i8 \ --with-FFLAGS="-DUNIX=1 -DLINUX=1 -DG95=1" \ --with-CFLAGS="-DUNIX=1 -DLINUX=1" \ --with-NOCHEAP
Entendendo o comando:
“--prefix=/usr/local/mcnpx” informa o local onde os executáveis serão
compilados (necessária a existência destes diretórios ; “--with-FC=f90” informa o
nome do compilador Fortran; “--with-CC=gcc” informa o nome do compilador C/C++;
“--host=i686-pc-linux” informa a plataforma do computador, somente pra informação
ao software; “--with-FFLAGS=-i8” e “--with-NOCHEAP” indicam ao compilador
Fortran a possibilidade de trabalhar com inteiro de 8 bytes; “--with-FFLAGS="-
DUNIX=1 -DLINUX=1 –DG95=1"” e “--with-CFLAGS="-DUNIX=1 -DLINUX=1"” serve
para que o compilador interprete os códigos fontes com codificação específica para
UNIX / LINUX, previnindo possíveis erros lexos. Para mais opções consultar o
manual de instalação do MCNPX 2.6.
4. Após executar este script os objetos e os makefiles para a compilação já
estarão prontos, faltando apenas executar o comando “make”.
$ make
51
ATENÇÃO!
Antes de executar o comando “maketests” é necessário alterar um
arquivo “Makefile.h” para que os testes ocorram sem erros. Altere o arquivo
“/tmp/mcnpx_install/src/test/Makefile.h” nas linhas que contém as variáveis
“TARCH”, “TSYS”, “TFC” e “TCC” e as deixe assim:
TARCH = intel TSYS = linux TFC = ifc TCC = icc
Só então execute os commandos abaixo:
$ maketests $ makeinstall
Feito isto, o MCNPX já se encontra instalado. Mas para que seu
funcionamento ocorra sem problemas ainda é necessária a definição de algumas
variáveis de ambiente.
5. Antes de executar o MCNPX é necessário definir as variáveis de
ambiente “PATH” e “DATAPATH”. Isso pode ser feito editando o arquivo
“.bashrc” de cada usuário ou utilizando uma definição global, que pode
ser encontrada no “/etc/bash/bashrc” ou “/etc/bash.bashrc” dependendo
da distribuição do Linux.
PATH=/usr/local/mcnpx/bin DATAPATH=/usr/local/mcnpx/DATA
Assumindo que o local de instalação tenha sido em “/usr/local/mcnpx/” os
valores acima devem estar inclusos no caminho das variáveis de ambiente.
6. Colocar as biblioteca utilizadas nos cálculos dentro da pasta “DATA”.
Verifique se o seu diretório “lib” contém as livrarias “phtlib”, “bertin” e
“barpol.dat”. Se não existirem estas livrarias então é necessário instalá-
las. Caso existam é necessário criar um link dessas livrarias dentro da
pasta “DATA”. Para isso basta seguir os passos:
$ cd /usr/local/mcnpx/DATA $ ln -s ../lib/phtlib . $ ln -s ../lib/bertin . $ ln -s ../lib/barpol.dat .
52
Verifique se existe o arquivo “mcnpx/DATA/xsdir”, caso não esteja presente
copie o arquivo xsdir1 para um outro chamado xsdir.
Se as variáveis de ambiente e as bibliotecas foram configuradas e instaladas
corretamente o sistema deverá responder corretamente à chamada do programa
MCNPX.
4.2.3. Compiladores GNU (C/C++ e Fortran 90) com MPI
Pequenas modificações nas configurações acima (para a instalação com o
Compilador GNU (C/C++ e Fortran 90) sem MPI) permitem habilitar a habilidade de
executar o MCNPX de forma paralela, utilizando MPI (Message-Passing Interface). A
instalação a seguir foi feita com a biblioteca do MPICH2 versão 1.03. Estas
bibliotecas podem ser encontradas neste endereço
http://www.mcs.anl.gov/research/projects/mpich2/.
1. Instalar o MPICH2. No site do projeto encontra-se uma grande quantidade
de material com conteúdo para diversas distribuições, incluído o Gentoo.
Além disso, nos repositórios do Gentoo é possível encontrar pacotes já
prontos para instalação de maneira ainda mais fácil, destas bibliotecas.
Após a instalação será possível encontrar dois executáveis na pasta
“/usr/bin/”:
“/usr/bin/mpif90” - compila e liga programas em MPI escritos em Fortran 90.
“/usr/bin/mpif90”- compila e liga programas em MPI escritos em C.
Além destes executáveis é importante saber a localização da instalação de
algumas bibliotecas do MPICH, pois esta informação será necessária na execução
do script “configure”. Exemplos das bibliotecas MPICH que devem ser localizadas:
/usr/lib64/libmpich.a /usr/lib64/libmpich.so /usr/lib64/libmpichcxx.a /usr/lib64/libmpich.so.0.0 /usr/lib64/libmpichf90.a /usr/lib64/libmpich.so.0
2. Durante o processo de compilação do MCNPX o compilador de Fortran 90
deve ser chamado de “f90”, então é necessário criar um link simbólico
entre o “gfortran” e “f90”.
53
$ cd /usr/i686-pc-linux-gnu/gcc-bin/4.1.1 $ ln -s gfortran f90
3. Decompacte o arquivo “.tar” que contenha os arquivos do código fonte do
MCNPX. Para que o compilador GNU funcione corretamente no próximo
passo é necessário modificar algumas partes do código de cinco arquivos
escritos em Fortran. São eles:
src/bertin/getexm.F src/htape3x/getexm.F src/mcnpx/mcnpf/getexm.F src/phtlib/mcnpf/getexm.F src/xsex3/getexm.F
Em cada um destes modifique a seguinte linha:
integer(ki4), external :: iargc !/*ge5f 8*/
Transformando-a em:
integer(ki4) :: iargc !/*ge5f 8*/
4. Execute o script “configure” com as opções abaixo supondo que queira
instalar o MCNPX em “/usr/local/mcnpx/” :
$ ./configure --prefix=/usr/local/mcnpx \ --with-FC=mpif90 \ --with-CC=mpicc \ --host=i686-pc-linux \ --with-FFLAGS=-i8 \ --with-FFLAGS="-DUNIX=1 -DLINUX=1 -DG95=1" \ --with-CFLAGS="-DUNIX=1 -DLINUX=1" \ --with-MPILIB="-L/usr/lib64 -lmpich" \ --with-NOCHEAP
Entendendo o commando:
“--prefix=/usr/local/mcnpx” informa o local onde os executáveis serão
compilados necessária a existência destes diretórios ; “--with-FC=mpif90” informa o
nome do compilador Fortran; “--with-CC=mpicc” informa o nome do compilador
C/C++; “--host=i686-pc-linux” informa a plataforma do computador, somente pra
informação ao software; “--with-FFLAGS=-i8” e “--with-NOCHEAP” indicam ao
compilador Fortran a possibilidade de trabalhar com inteiro de 8 bytes; “--with-
FFLAGS="-DUNIX=1 -DLINUX=1 –DG95=1"” e “--with-CFLAGS="-DUNIX=1 -
54
DLINUX=1"” serve para que o compilador interprete os códigos fontes com
codificação específica para UNIX / LINUX, previnindo possíveis erros lexos; “--with-
MPILIB="-L/usr/lib64 -lmpich"” indica o endereço das bibliotecas do MPICH
necessárias para a compilação . Para mais opções consultar o manual de instalação
do MCNPX 2.6.
5. Após executar este script os objetos e os makefiles para a compilação já
estarão prontos, faltando apenas executar o comando “make”.
$ make
ATENÇÃO!
Antes de executar o comando “maketests” é necessário alterar um
arquivo “Makefile.h” para que os testes ocorram sem erros. Altere o arquivo
“/tmp/mcnpx_install/src/test/Makefile.h” nas linhas que contém as variáveis
“TARCH”, “TSYS”, “TFC” e “TCC” e as deixe assim:
TARCH = intel TSYS = linux TFC = ifc TCC = icc
Só então execute os commandos abaixo:
$ maketests $ makeinstall
Feito isto, o MCNPX já se encontra instalado. Mas para que seu
funcionamento ocorra sem problemas ainda é necessária a definição de algumas
variáveis de ambiente.
6. Antes de executar o MCNPX é necessário definir as variáveis de
ambiente “PATH” e “DATAPATH”. Isso pode ser feito editando o arquivo
“.bashrc” de cada usuário ou utilizando uma definição global, que pode
ser encontrada no “/etc/bash/bashrc” ou “/etc/bash.bashrc” dependendo
da distribuição do Linux.
PATH=/usr/local/mcnpx/bin DATAPATH=/usr/local/mcnpx/DATA
Assumindo que o local de instalação tenha sido em “/usr/local/mcnpx/” os
55
valores acima devem estar inclusos no caminho das variáveis de ambiente.
7. Colocar as biblioteca utilizadas nos cálculos dentro da pasta “DATA”.
Verifique se o seu diretório “lib” contém as livrarias “phtlib”, “bertin” e
“barpol.dat”. Se não existirem estas livrarias então é necessário instalá-
las. Caso existam é necessário criar um link dessas livrarias dentro da
pasta “DATA”. Para isso basta seguir os passos:
$ cd /usr/local/mcnpx/DATA $ ln -s ../lib/phtlib . $ ln -s ../lib/bertin . $ ln -s ../lib/barpol.dat .
Verifique se existe o arquivo “mcnpx/DATA/xsdir”, caso não esteja presente
copie o arquivo xsdir1 para um outro chamado xsdir.
Se as variáveis de ambiente e as bibliotecas foram configuradas e instaladas
corretamente o sistema deverá responder corretamente à chamada do programa
MCNPX.