Boletim Digital CIRP - setembro

Page 1

Boletim digital setembro/2012

Centro de Informática de Ribeirão Preto

Nesta edição:

Programação de alto desempenho Fitas magnéticas Incidentes de segurança


Expediente Universidade de São Paulo Reitor João Grandino Rodas Vice-Reitor Hélio Nogueira da Cruz Campus de Ribeirão Preto Prefeito do Campus Prof. Osvaldo Luiz Bezzon Superintendência de Tecnologia da Informação Superintendente Prof. Gil da Costa Marques Centro de Informática de Ribeirão Preto Diretor Prof. Oswaldo Baffa Filho Vice-Diretor Prof. Alexandre Souto Martinez Chefe da Seção Técnica Administrativa Carlos Eduardo Herculano Chefe do Serviço Técnico de Informática Cláudia H. B. Lencioni Chefe da Seção Técnica de Suporte Clélia Camargo Cardoso Chefe da Seção Técnica de Redes Rubens Rodrigo Diniz Chefe Seção Técnica de Manutenção em Informática Luiz Henrique Coletto Projeto Gráfico João H. Rafael Junior Apoio: Instituto de Estudos Avançados Polo Ribeirão Preto


Índice Programação de alto desempenho em unidades de processamento gráfico - 4 Fitas magnéticas: uma velha amiga para backups - 9 Sobre os incidentes de segurança - 14


Programação de alto desempenho em unidades de processamento gráfico

Apresentamos o uso de unidades gráficas de processamento (GPUs) da NVIDIA em modelos de simulação numérica. Muitas simulações numéricas são baseadas em técnicas de Monte Carlo, que têm longos tempos de processamento. Estas simulações podem ter tempos reduzidos por um fator de 10 ou 100, ao serem codificadas na GPU. O ganho se deve ao massivo paralelismo do processamento da unidade gráfica. Grande parte dos algoritmos de simulação numérica são escritos para processar a informação de maneira serial, ou seja, apenas uma instrução é processada a cada intervalo de tempo, grosso modo este intervalo é determinado pelo clock do processador. Em contrapartida, os algoritmos paralelos utilizam múltiplos recursos computacionais para realizar mais de uma instrução simultaneamente.

4

mais diversos campos de pesquisa, tais como modelos de redes2, astronomia3, processamento de imagens4, criptografia5 etc. No campo das simulações de Monte Carlo, as redes bidimensionais são amplamente aplicadas ao estudo de epidemiologia e teoria da informação, em que cada nó, ou sítio, representa um indivíduo. A dinâmica de interação nestas redes possibilita a aplicação de boas estratégias de paralelização, levando a ganhos de mais de 100 vezes em tempo de execução. Além do ganho de velocidade há outras vantagens, tal como o baixo custo da unidade gráfica e o fato da paralelização na GPU permitir uma migração mais fácil do código para clusters de CPUs, caso seja necessário. O CUDA C é uma extensão fornecida pela NVIDIA que permite estender a linguagem C ao definir funções que são executados em paralelo na GPU. Estas funções são chamadas de kernels.

Recentemente, a NVIDIA1 introduziu o CUDA, uma arquitetura geral de processamento, com um novo modelo de programação em paralelo. Para lidar com o modelo de programação CUDA foram desenvolvidas extensões que permitem utilizar linguagens de alto nível, tal como: C, C++, Java, Fortran, Direct Compute e OpenCL.

A diferença de uma função na GPU é que o código pode ser executado simultaneamente por várias threads (linhas de execução). Em termos de processamento a GPU divide-se em:

Esta nova plataforma de desenvolvimento tem sido utilizada nos

Multiprocessadores – São unidades físicas de processamento que agrupam


vários blocos. Cada GPU contém um ou mais multiprocessadores. Blocos – São também conhecidos como cores e estão fisicamente presentes no interior de cada multiprocessador. Seu número varia de acordo com a tecnologia da placa, variando de 8 a 48 núcleos. Threads – É a capacidade de um bloco executar instruções correspondentes a várias linhas de execução, que podem ser executadas paralelamente ou serialmente. Atualmente é possível criar até 1024 linhas de execução por bloco. Uma thread não é um programa, mas executa dentro de um. Um exemplo disso é o browser, a existência de várias threads permite que seja feito um download enquanto o usuário assiste um vídeo na internet. O principal motivo do ganho de desempenho é que as GPUs são dedicadas ao processamento de dados, não tendo a função de guardar informações em memórias cache extensas nem tratar de controle de fluxo altamente complexo. Desta forma, na GPU há uma área menor destinada à memória cache do que na CPU, assim como ilustrado na Figura 1.

Figura 1: A CPU dedica parte considerável dos recursos para controle de fluxo e para guardar dados em memórias cache. Essa mesma característica não está presente na GPU, a qual diminui estes espaços visando ganho na quantidade de processamento. No modelo de programação CUDA o desenvolvedor deve configurar o número de threads e quais instruções serão executadas nestas threads. Em geral, os códigos executados na CPU preocupam-se apenas a memória RAM, contudo os códigos na GPU possuem diversas memórias para as mais variadas finalidades, como explicado abaixo: Registradores – É o tipo de memória mais rápida na GPU. Usualmente, as variáveis declaradas dentro de um kernel residem neste espaço de memória. O tempo de vida desta memória é o mesmo da thread que o alocou. Memória

Local

Se

as

variáveis

declaradas dentro de um kernel consumirem muito espaço nos registradores é conveniente alojá-las em uma outra posição de memória chamada memória local. Essa memória têm o mesmo tempo de vida da thread que o alocou. Memória compartilhada – Também conhecida como shared memory, ela pode ser tão rápida quanto os registradores. Está localizada em cada


Programação de alto desempenho em unidades de processamento gráfico

bloco, sendo acessível apenas às threads deste bloco. O tempo de vida desta memória é o mesmo do bloco.

dos blocos e o segundo relacionado a novas funcionalidades do software, tal como uma nova biblioteca.

Memória global – É o análogo da memória RAM da CPU. Ela é duas ordens de grandeza mais lenta que os registradores. A transferência de dados da CPU para GPU e vice-versa ocorre por intermédio desta memória. O tempo de vida desta memória é igual o tempo de vida da aplicação.

Antes de codificar uma aplicação para ser executada na GPU é necessário que o problema permita processamento em paralelo. Um exemplo onde há paralelismo é a multiplicação de duas matrizes, cada elemento da matriz resultante é independente dos outros elementos.

Memória de Constantes – É um tipo de memória apenas de leitura para a GPU. Nela é possível escrever a partir da CPU.

Uma maneira de paralelizar o produto de duas matrizes é utilizar um bloco por elemento, ou seja, em uma matriz de N elementos são necessários N2 blocos. É possível dividir os blocos em duas dimensões, como ilustrado na Figura 3, assim um bloco é localizado por coordenadas (x,y), dentro de cada bloco existe 1 thread para realizar as contas.

Memória de Textura – É um tipo de memória visíveis a todos os blocos de uma aplicação, sendo otimizada para trabalhar com dados indexados de modo bidimensional, tal como coordenadas de uma superfície. As codificações em CUDA C devem lançar mão destes recursos de memória, pois ele pode acentuar o desempenho de uma aplicação. O escopo de cada um dos tipos de memória está ilustrado na Figura 2. Completando as características da GPU, há o compute capability, que está relacionado com características do hardware e do software. Este parâmetro é representado por dois números de revisão (tal como 1.3). O primeiro deles é relativo à arquitetura

6


Figura 2: Escopo dos diferentes tipos de

bloco. Cada bloco será univocamente localizado com uma coordenada (x,y).

memórias. As memórias on-chip, ou seja, na mesma região do core são os registradores e a shared memory, o registrador é acessado pela thread que o alocou, enquanto que a memória compartilhada é visível a todas as threads do bloco.

Quando o programa inicia cada bloco fica responsável por calcular um elemento da matriz resultante, como ilustrado no bloco (1,1) desta figura. Note que a complexidade foi reduzida de N2 para N.

A memória local não é on-chip, porém seu escopo refere-se à thread que a criou, esta é uma memória lenta, assim como a memória global. A memória de textura reside fora dos blocos e é otimizada para disposição bidimensional dos dados, o acesso a esta memória é mais rápido que o acesso à memória global, porém mais lento quando comparado com as memórias on-chip.

Em simulações numéricas de Monte Carlo, a GPU apresenta grande robustez ao utilizar a memória compartilhada para armazenar parte dos dados durante o processamento (nas arquiteturas mais modernas, há 48 kilobytes desta memória por bloco), pois esta memória é 100 vezes mais veloz que a memória global, de forma que tanto a leitura quanto a escrita são processos rápidos. Porém a utilização deste artifício é possível quando o dinâmica de interação é de curto alcance, tal como o modelo de Ising, neste modelo parte dos sítios da rede armazenados na shared memory de cada bloco, sendo assim processados em um tempo menor. Note que o conhecimento do hardware permite codificar a simulação de maneira mais eficaz.

Figura 3: Produto de duas matrizes quadradas na GPU. Neste exemplo são selecionados 5 blocos na dimensão x e 5 na dimensão y, apenas uma thread por

Esse conhecimento dos recursos em termos de hardware da GPU auxilia no desenvolvimento de aplicações otimizadas para alto nível de desempenho e com melhor aproveitamento de recursos, que são extremamente requisitados em


Programação de alto desempenho em unidades de processamento gráfico

simulações de Monte Carlo processamento de imagens.

ou

Autores: Cristiano Roberto Fabri Granzotti¹ e Alexandre Souto Martinez¹,² 1 - Departamento de Física - FFCLRP, USP Ribeirão Preto, Brasil 2 - Instituto Nacional de Ciências e Tecnologia em Sistemas Complexos (INCT-SC) Alexandre Souto Martinez fez o Bacharelado (86) e Mestrado (88) em Física no Instituto de Física de São Carlos (IFSC) da Universidade de São Paulo (USP), Brasil. Obteve o ''Diplôme des Etudes Approfondies'' (DEA) (90) e o Doutorado (93) pela Universidade Joseph Fourier (Grenoble I), França. Fez Pós-Doutorado (94-96) na Universidade de Genebra, Suíça e (9698) no Instituto Nacional de Pesquisas Espaciais (INPE) em São José dos Campos, Brasil. Desde 98 é docente da Faculdade de Filosofia, Ciências e Letras de Ribeirão Preto (FFCLRP) da Universidade de São Paulo (USP). Tornou-se Livre Docente (Professor Associado) em 2005. Cristiano Roberto Fabri Granzotti é aluno da graduação da Faculdade de Filosofia, Ciências e Letras de Ribeirão Preto

8

Referências: [1] NVIDIA CUDA C Programming Guide. v. 4.2. Disponível em http://developer.nvidia.com/cuda/nvi dia-gpu-computing-documentation. Acessado em 10 set. 2012. [2] Tal Levy, Guy Cohen, Eran Rabani. Simulating Lattice Spin Models on Graphics Processing Units. arXiv:1209.0296. [3] Bharath Pattabiraman, Stefan U m b r e i t , We i - ke n g L i a o, A l o k Choudhary, Vassiliki Kalogera, Gokhan Memik. A Parallel Monte Carlo Code for Simulating Collisional N –body Systems. arXiv:1206.5878v1. [4] Dalong Liu, Emad S. Ebbini. RealTime 2-D Temperature Imaging Using Ultrasound. IEEE Transactions on


Fita magnética: uma velha amiga para Backups

Figura 1: IBM Tape Drive de 1966 Historicamente a fita é considerada o segundo tipo de memória secundária a ser utilizada nos computadores. A primeira foi o cartão perfurado. Das opções de memória de massa ela é a de menor custo, que permite maior capacidade de armazenamento e a de mais fácil transporte físico. Tem, porém, menor velocidade na hierarquia de memória atual. Quanto à capacidade de armazenamento, varia de poucos Mbs (Megabytes) até centenas de Gbs (Gigabytes). Quando utilizadas em

conjunto, em “Tape Library” (Biblioteca de Fita), pode chegar a Pbs (Petabytes ou 1.000 Terabytes) nas “storages” de grandes fabricantes, nada impedindo que as mesmas sejam utilizadas em conjunto, alcançando capacidades maiores ainda . As unidades de fita são conectadas aos computadores e “Cloud Systems” (Sistemas em nuvem) por Interfaces de Fibra, Ethernet cabeada, LTP, IDE, SATA, USB, Firewire e SCSI. Por trabalhar com fluxo de gravação/leitura linear, pode ser um pouco demorado encontrar a informação que se deseja. Isso é compensado com a


Fita magnética: uma velha amiga para Backups

facilidade de gravação/recuperação das informações, posto utilizar a forma sequencial de manipulação dos dados. Muitas vezes, as empresas fazem investimentos expressivos em seus datacenters. Entretanto, esquecem, ou dão valor menor, a esse delicado processo, que é a execução de backups regulares de sua base de dados. Devido à sua característica menos dinâmica do que outros processos de armazenamento, tais como discos rígidos e os dispositivos eletrônicos de armazenamento de estado sólido (como pendrives), as fitas acabam sendo uma escolha natural para esse tipo de missão crítica, tendo sido criadas várias estratégias de execução das cópias de segurança. Se falarmos, então, em armazenamento para arquivamento e proteção de dados por décadas, é o melhor método de arquivamento. Sempre depois, é claro, da imbatível mídia em papel, que pode durar centenas de anos. Durar muito tempo é uma faca de dois gumes. De um lado, a fita pode ser utilizada por seus 20 ou 30 anos. Até mais quanto bem manipulada e armazenada. De outro, o fator obsolescência pode impedir que esses dados sejam recuperados. Principalmente se 10

ocorrerem falhas no dispositivo de escrita/leitura. A forma em que foi feita a gravação também pode interferir na recuperação. Softwares proprietários de backup, com criptografia e compressão de dados próprios, podem inviabilizar o retorno dos dados por outros meios, se comparados com padrões abertos. Não é difícil entender como o fator obsolescência ou gravação de dados em programas proprietários podem causar transtornos ao se tentar recuperar a informação digital.

Figura 2: unidade de fita hp dat 72i (36/72-gb) interna Por exemplo, utilizando outra mídia em microcomputadores tipo “desktop”. Como estamos agora no ano de 2012, se retrocedermos para 1982 (trinta anos atrás), os discos rígidos comerciais eram vendidos (aqui no Brasil) em unidades de 5MB, 10MB e 15MB. Hoje, facilmente se encontram discos de 1 TB (Terabyte). As controladoras de disco atuais não usam o mesmo padrão da década de


1980. Nem se encaixam mais nos slots de expansão atuais. Pode ocorrer até de que o sistema operacional (nessas épocas sempre proprietários) seja incompatível com sistemas atuais. Caso houvesse necessidade de recuperação de informação, se o

Figura

3:

Tape StorageTek Sl8500

Library

Instockinc

equipamento primitivo não estiver funcionando adequadamente, não será uma tarefa fácil executar a operação. Talvez nem possível. As fitas tiveram incrementos de capacidade similares aos discos rígidos e o retorno das informações seguem


Fita magnética: uma velha amiga para Backups

passos semelhantes. O complicador maior é que, por ficarem estáticas em prateleiras ou galpões distantes, se percebe a necessidade do resgate dos dados em um último momento, o que, dependendo do estado da mídia, pode ser muito tarde para que o procedimento seja bem sucedido.

Caso a unidade seja do tipo “Tape Library”, muitos dos cuidados se tornam menos críticos, posto o manuseio das fitas ser executado por robôs internos especialmente concebidos para esse dispositivo.

Isso tudo cria um problema que pode impactar instituições com muita informação. Principalmente em ambientes de intensa produção intelectual, em que os dados podem se acumular por décadas.

Infelizmente, meios de armazenagem costumam ser adquiridos pelo seu custo por byte. O fato é que informações devem ser guardadas pelo seu valor intrínseco.

Se existem informações importantes em mídias magnéticas obsoletas, um procedimento a ponderar é que certamente está-se em um bom momento de pegar esses dados em disquetes, fitas com padrões antigos,

Dados muito valiosos precisam ser guardados em mídias de qualidade, e, se for muito acessado, a fita pode não ser a melhor solução, posto considerarse que o número seguro de escritas/leituras na mesma, apesar da

bem como discos rígidos com interfaces que não são mais comercializadas e salvá-los em uma mídia mais atual.

insistência dos fabricantes em inflar o valor, ser limitada.

Quanto aos procedimentos para guardar e manusear, deve-se seguir sempre as recomendações do fabricante. Devido à sua robustez e flexibilidade, normalmente os cuidados padronizados com as fitas são: Usar e armazenar em ambientes limpos; evitar sujeiras ocasionais causados por manipulação digital direta, comida e 12

fumaça de cigarro; manter os equipamentos de leitura/gravação limpos e em ordem; evitar quedas, luz intensa e umidade

Nesses casos, uma unidade do tipo “Disk Library” (Biblioteca de Disco) fazendo um cache intermediário pode ser bem interessante. Considere a fita, então, como uma forma um pouco mais lenta (porém eficiente) de recuperar informações, como meio de backup e como meio de arquivamento para longa data. Não se esquecer de que, sempre que houver mudança tecnológica de


a r q u i va m e n t o d a i n s t i t u i ç ã o, é necessário migrar as informações para outras mídias (possivelmente formas mais modernas de fita) de tecnologia mais recente. É preferível demorar um pouco para ter uma informação (em alguns casos, algumas horas) do que não tê-la de forma alguma.

E em português: http://brazil.emc.com/backup-andrecovery/disk-library/disk-library-formainframe.htm h t t p : / / w w w 03.ibm.com/systems/br/storage/tape/ts 3310/index.html http://www.abracor.com.br/novosite/txt _tecnicos/CPBA/CPBA%2042%20Ftas% 20Magn.pdf

Bibliografia: TANENBAUM, A. S. Organização estruturada de computadores.Pearson, 2007 S TA L L I N G S , W. A r q u i t e t u r a e organização de computadores. Prentice Hall, 2002 N O R T O N , P e t e r, I n t r o d u ç ã o Informática, Makron Books, 1996.

ge/tape/ts3310/specifications.html

à

V A N B O G A R T, J o h n W . C . , Armazenamento e Manuseio de Fitas Magnéticas, Projeto Conservação Preventiva em Bibliotecas e Arquivos, 2001

Autor: Wagner Adenilson Peripato Bacharel em Ciências da Computação. Técnico em Manutenção Eletrônica do CIRP/USP - Ribeirão Preto Trabalhou como Analista de Suporte na empresa Meias Lupo S/A. Professor de Arquitetura e Organização de Computadores na UNIESP e-mail: peripato@cirp.usp.br

Netgrafia: http://www.emc.com/backup-andrecovery/disk-library/disk-library-formainframe.htm http://www.03.ibm.com/systems/stora


Sobre os incidentes de segurança

Incidentes de Segurança relacionados à Informática são constantes nas Universidades, nas empresas e em toda Internet.

adsf

Acontecem sempre que alguém reclama de abusos na Rede de Dados.Os mais conhecidos são SPAM, tentativas de fraude, violação de direitos autorais, ataques a servidores WEB, etc. As notificações são enviadas aos responsáveis de Rede de Dados da empresa ou instituição e uma resposta é solicitada. Geralmente as reclamações são feitas via E-Mail e os responsáveis pela Rede de Dados devem verificar e solucionar os problemas. Na USP há o GSeTI - Grupo de S e g u r a n ç a e m Te c n o l o g i a d a Informação, que trata das questões relativas à segurança de sistemas e redes da Universidade de São Paulo. Cabe ao GSeTI identificar e resolver os problemas que foram notificados por entidades internas e externas à USP. O GSeTI também identifica e mantém, juntamente com os Centros de Informática do Interior, os requisitos de controle da política de segurança da USP. O grupo provê ainda sugestões para melhorar a segurança de sistemas e notifica os órgãos responsáveis pela 14

Internet Brasileira sobre os incidentes de segurança ocorridos na USP, bem como as medidas tomadas. Com o intuito de melhorar a segurança da Rede, o GSeTI atua também em parceria com as Unidades da USP. A l é m d i s s o, o g r u p o e l a b o ra estatísticas e divulga alertas sobre vulnerabilidades no sistema. Para

notificar

um

incidente

de


segurança

Há muitos CERTs espalhados pelo mundo e todos com a mesma preocupação. Softwares e ferramentas dedicadas auxiliam no gerenciamento dos Incidentes. A USP utiliza o RT, Request Tracker e o RTIR, Request Tracker for Incident Response. É OpenSource e de livre distribuição. Os Incidentes de Segurança e os diversos detalhes envolvidos são armazenados em Banco de Dados e o acesso é restrito aos Centros de Informática. Quando ocorre um Incidente de S e g u ra n ç a , o r e s p o n s á v e l p e l a Segurança em TI da Unidade recebe a notificação via E-Mail e providencia a solução do mesmo.

segurança, encaminhe uma mensagem para o E-Mail security@usp.br ou abuse@usp.br O CERT.BR é o Grupo de Resposta a Incidentes de Segurança para a Internet brasileira, mantido pelo NIC.br, do Comitê Gestor da Internet no Brasil. É responsável por tratar incidentes de segurança em computadores que envolvam redes conectadas à Internet brasileira.

É recomendável detalhar o problema encontrado e a solução adotada. Esses dados podem ajudar na solução de problemas semelhantes. Serve como base de conhecimento para a solução de futuros incidentes. O CIRP desenvolveu uma ferramenta (Software) para consulta ao Banco de Dados RTIR da USP. O CCE vai adotar esta ferramenta e, em breve, estará disponível para as Unidades dos Campus da USP. As equipes técnicas de TI terão acesso a esta ferramenta e terão acesso a mais


Sobre os incidentes de segurança

detalhes dos Incidentes de Segurança, acompanhar a evolução dos mesmos, relacionamento entre eles, tipos e muitos detalhes envolvidos. Conhecendo as técnicas envolvidas pode-se planejar melhor o uso de Softwares e Ferramentas de proteção, t é c n i c a s e n v o l v i d a s e compartilhamento de conhecimentos. A Cartilha de Segurança para Internet, elaborada pelo CERT.BR, contém recomendações e dicas sobre como o usuário pode aumentar a sua segurança na Internet.

16

O documento apresenta o significado de diversos termos e conceitos utilizados na Internet e fornece uma série de recomendações que visam melhorar a segurança de um c o m p u t a d o r. M a i s d e t a l h e s : www.cartilha.cert.br As estatísticas envolvidas assustam, basta ver (www.cert.br/stats/). Há dados sobre os incidentes reportados e sobre o SPAM. São mostrados graficamente a evolução dos incidentes, a origem (países) e os tipos de incidentes,


apenas para a Internet Brasileira. Para conhecer um pouco mais: www.cert.org. Um pouco mais sobre os RTIRs: http://granito2.cirp.usp.br/IS/palestra.i s.html. Prejuízos financeiros podem ocorrer se os incidentes não forem resolvidos. Se um servidor de Banco de Dados ou servidor WEB forem comprometidos, o prejuízo pode ser grande e a empresa pode fechar as portas. A equipe de TI deve implementar e dominar as técnicas e recomendações para proteger seus ativos e servidores.

Como há muita preocupação com a Segurança,diversas empresas se especializaram em Gestão da Segurança da Informação, Gerenciamento dos Riscos em TI, Normas de Segurança em TI e outras. Incidentes de Segurança acontecem sempre. O bom uso pode evitar muitos Incidentes e aumentar a sua segurança na Internet. Autor: Msc. Eng. Ali Faiez Taha / Analista de Sistemas CIRP - USP - Ribeirão Preto - SP



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.