Tecnologia

Ξ Deixe um comentário

E no início, eram problemas…

publicado por Fabricio Cannini

Olá pessoal, sou Fabrício Cannini, minha especialidade é computação de alta performance, mais conhecida como HPC, e inicio aqui essa coluna sobre o assunto.

Para começar, é bom saber um pouco da história do setor. Como começou, fatos marcantes, e onde estamos hoje. Por isso, esses dois primeiros artigos serão mais longos que o normal.




Desde que o homem desenvolveu a capacidade de contar, a busca por maior abstração e velocidade andaram sempre lado-a-lado. Do Ábaco Babilônico ao Antikythera Grego, do Astrolábio de navegação à calculadora de Pascal, da Máquina Analítica de Babbage  no século 19 ao ENIAC do início dos anos 50. Em 1957, um grupo de pesquisa da IBM liderado por John Backus lança a linguagem Fortran para o IBM 7090, que deu aos cientistas a ferramenta necessária para desbravar o novo mundo da computação que iniciava.


– Anos 60 –
Já na década seguinte, máquinas como o Control Data Corporation CDC 6600 e IBM System/360 já eram usadas para previsão do tempo e análise de stress estrutural nos foguetes espaciais da NASA. Ambas foram máquinas revolucionárias para a época, tanto que o CDC 6600 motivou o seguinte comentário de Thomas Watson Jr, presidente da IBM:
– “Eu sei que no laboratório que desenvolveu esse sistema trabalham 34 pessoas, incluindo o faxineiro. Desses, 14 são engenheiros e 4 são programadores. Compare isso com a nossa vasta estrutura. Eu não consigo entender como perdemos a liderança da indústria permitindo que outra empresa ofereça o computador mais poderoso do mundo.”
Mesmo após o lançamento do System/360, levou um tempo para a IBM conseguir equiparar a performance dele com a do CDC 6600, com modelos como o 360-91, feito sob encomenda para a NASA.

Em 1969 é lançada a primeira versão do Unix, sistema operacional inspirado no Multics, um projeto do MIT e AT&T para mainframes GE. O UNIX é uma criação do centro de pesquisa Bell Labs, da AT&T. Entre os envolvidos estavam Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy e Joe Ossana, também presentes na criação do Multics.


– Anos 70 –
Chegando nos anos 70, Brian Kernighan e Dennis Ritchie, dois dos “pais” do UNIX lançam a linguagem C. A aceitação foi grande e rápida, pois possibilitava um nível maior de abstração entre diferentes arquiteturas de processadores. Vale lembrar que até então os sistemas operacionais eram todos escritos em linguagem de máquina (assembly), o que dificultava muito a adaptação de um sistema operacional de uma arquitetura para outra. Isso motivou o time do UNIX da Bell Labs a reescrevê-lo em C, o que foi feito em aproximadamente 3 meses.

Por causa de um acordo feito entre a AT&T e o governo dos EUA para evitar uma ação anti-truste, a AT&T não poderia cobrar ou de alguma forma ter lucro com o UNIX. Todo o código-fonte era disponível, o que o fez o sistema mais popular nas universidades, sendo adaptado para várias arquiteturas diferentes e ser o objeto de um dos livros mais influentes da história da computação, o “Lions’ Commentary on UNIX 6th Edition, with Source Code” do professor John Lions, mais conhecido como “Lions’ Book”. Como sugere o título, o livro continha todo o código-fonte do UNIX extensamente comentado pelo professor, onde ele discorria sobre as escolhas feitas pelos desenvolvedores e como foram implementadas.

Em 1977 surge o Cray-1, projetado por Seymour Cray, que também foi o projetista-chefe do CDC 6600. O Cray-1 foi um marco na história dos supercomputadores, consolidando o termo e a separação entre supercomputadores e mainframes. O sistema de memória, a refrigeração a Freon e a forma em ‘C’ o tornaram um dos computadores mais icônicos de todos os tempos. No Xerox PARC ( Palo Alto Research Center ), a primeira rede Ethernet entra em funcionamento, invento que passaria quase despercebido até o início da década de 90. No mesmo ano uma nova decisão da justiça dos EUA sobre o caso anti-truste da AT&T abre a possibilidade de comercialização do UNIX, que prontamente tem a sua distribuição encerrada.

Como resultado, um grupo de programadores de várias universidades dos EUA lideradas por Berkeley, lançaram a primeira versão do Berkeley System Distribution ou 1BSD, um clone exato do UNIX, mas sem qualquer vestígio de código da AT&T. Entre os programadores estava Bill Joy, co-fundador da Sun, e Kirk McKusick, que mais tarde se tornaria um dos fundadores e até hoje desenvolvedor ativo do FreeBSD. Posteriormente, o 4.2BSD foi o primeiro sistema operacional a ter suporte aos protocolos TCP e IP, se tornando a base da rede ARPANET, o embrião da internet como a conhecemos hoje. Curiosidade: A versão mais conhecida do “Beastie”, o mascote do BSD, foi desenhada por John Lasseter da Pixar, diretor de “Toy Story” e “Carros”.


– Anos 80 –
A década de 80 viu um boom de investimentos em software e hardware na área, tanto de novas empresas quanto existentes. Convex, NEC, Fujitsu, Hitachi, Thinking Machines, Nastran, BBN, Intel, DEC, e o início das “Unix Wars”, disputa que durou até o início dos 90 para a padronização entre os vários sistemas operacionais baseados no Unix e/ou BSD. SunOS (depois Solaris), IBM AIX, HP UX, DEC Ultrix e Cray UNICOS são todos dessa época, todos com modelos e ferramentas de programação ligeiramente diferentes entre si.

Uma das grandes inovações da época foi o surgimento do modelo de memória distribuída. Em contraste ao modelo de até então, de uma única máquina com grande quantidade de processadores e memória, conhecida como memória compartilhada; Um sistema de memória distribuída é composto de vários computadores trabalhando em conjunto, cada um com seu conjunto de memória, disco, cpu(s) e SO. A grande vantagem do modelo de memória distribuída é a sua maior escalabilidade, tornando mais fácil a ampliação/redução do sistema. Convex, Thinking Machines, e Intel são produtos bem representativos dessa época. A Intel com o iPSC/1 , composto de processadores 80286 e conexão ethernet; O iPSC/2, com processadores 80386 e conexão circuitada. A Thinking Machines CM-2 podia usar até 65536 (2^16) processadores de 1-bit; Apesar da arquitetura incomum, tinham performance comparável e até maior do que os Crays.

Por outro lado, isso implicou numa mudança conceitual na programação desses sistemas. A primeira iniciativa de sucesso foi o PVM ( Parallel Virtual Machine ), lançado em 1988. A grande sacada do PVM foi abstrair as diferenças de comunicação ( entre máquinas e processos ), I/O, threads, sinais, tipos e modo de bits ( endianness ) entre todas as arquiteturas suportadas. Isso facilita muito a adaptação de um programa para várias arquiteturas diferentes, diminuindo consideravelmente o tempo de desenvolvimento de uma aplicação.

A outra grande inovação dos anos 80 foi a criação da linguagem C++, idealizada por Bjarne Stroustroup, pesquisador do Bell Labs. A ideia era aplicar em uma linguagem conhecida, no caso C, um conceito que já era conhecido na pesquisa da área desde a década passada, para facilitar a adaptação do programadores e assim torná-la popular rapidamente. C++ deu aos programadores mais flexibilidade e poder de expressão do que outras linguagens disponíveis na época, o que é uma bênção e uma maldição ao mesmo tempo. Amada por uns e odiada por outros, ainda assim é inegável a influência que a linguagem teve e tem até hoje.

Os anos 80 também viram a quebra da barreira de 1 Gigaflop/s. Pra se ter uma comparação com o cenário atual, um celular moderno tem mais poder de processamento. Também novos segmentos se tornaram usuários, como os da aviação, automotor e petróleo. Já desde essa época, empresas como Shell e Schlumberger já se utilizavam de modelos computadorizados para melhor entender o posicionamento dos bolsões de óleo no subsolo, podendo assim planejar melhor a perfuração de poços, diminuindo os riscos de operações mal-sucedidas. Simulações de túnel de vento já eram conhecidas na década de 70, mas é a partir dos 80 que a técnica se populariza entre empresas como Boeing e AirBus.

No próximo artigo, falarei sobre os anos 90 e 2000. Até mais !

Autor

Gaúcho, leitor ávido, curioso incurável e nerd desde a infância. Comecei a trabalhar com TI junto com a faculdade, uso e trabalho com Linux desde 2003. Sou especialista em computação de alta performance ( HPC ) para as áreas científica e de engenharia.

Fabricio Cannini

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes