Léo Ramos Chaves / Revista Pesquisa FAPESPHá no campo da informática uma máxima, conhecida como Lei de Moore, que preconiza que a capacidade de processamento dos computadores dobraria a cada 18 meses, tornando-os aptos a fazer cálculos mais rapidamente. Ela foi enunciada em 1965 por Gordon Earl Moore, cofundador da Intel, uma das principais fabricantes globais de chip. Foi exatamente o fascínio pela velocidade computacional que influenciou o cientista da computação Siang Wun Song, pesquisador do Instituto de Matemática e Estatística da Universidade de São Paulo (IME-USP), a escolher sua área de atuação, a computação paralela, no início dos anos 1970.
Computação paralela é o emprego simultâneo de vários processadores para realizarem conjuntamente determinada tarefa computacional com o objetivo de reduzir o seu tempo de execução. “Naquela época, a escolha por essa área podia parecer estranho, pois só havia cinco computadores paralelos no mundo”, recorda-se Song. Segundo ele, a busca por mais velocidade computacional fazia com que as máquinas paralelas fossem um caminho natural a ser seguido. Hoje, destaca o pesquisador, mesmo os celulares modernos contam com mais de um processador.
Especialidade
Ciência da computação
Instituição
Instituto de Matemática e Estatística da Universidade de São Paulo (IME-USP)
Formação
Graduação em engenharia elétrica e mestrado em matemática aplicada na USP e doutorado em ciência da computação na Universidade Carnegie Mellon (EUA)
Nascido em Xangai, Song chegou ao Brasil quando tinha 15 anos. O pai, professor universitário, queria dar aos filhos uma formação superior de qualidade e escolheu o país a partir da sugestão de um de seus alunos. Ao desembarcar em São Paulo, falava inglês, mandarim, idioma oficial da China, e dois dialetos de seu país de origem.
“Era uma confusão de línguas, mas isso facilitou a mudança para o Brasil”, contou Song em entrevista a Pesquisa FAPESP. Casado há 50 anos com Ping Ping, uma analista de sistemas que largou a carreira para acompanhar o marido no doutorado em Pittsburgh, Estados Unidos. Ele tem três filhos, Alexandre, Alice e Arlene, e é avô de Julie, Nicole, Clara, Arthur e Olivia.
O que é a computação paralela?
É o uso de um grande número de processadores para realizar uma única tarefa computacional, visando diminuir o seu tempo de execução. Na segunda metade dos anos 1970, quando fiz doutorado nessa área, a computação paralela era praticamente desconhecida. Isso mudou. Até o telefone celular que usamos no nosso dia a dia é dotado de dois ou mais processadores. Com o passar do tempo, ela se tornou regra, não mais exceção. Ao longo de minha carreira, a maioria de meus projetos e publicações tratou de algoritmos paralelos. Um computador paralelo tem grande número de processadores. Para que eles resolvam determinado problema, é necessário um algoritmo paralelo que diga a cada processador o que ele deve fazer para, em conjunto, chegarem à solução do problema. Um algoritmo paralelo pode, por exemplo, dividir um problema em subproblemas, cada um dos quais pode ser resolvido por um processador.
Quais as vantagens da computação paralela?
Ela agiliza o tempo para resolver um problema computacional. Idealmente, um algoritmo paralelo usando n processadores pode resolver um problema em um tempo n vezes menor do que usando um único processador. Mas isso nem sempre é possível, pois nem todo problema pode ser paralelizado facilmente. Veja alguns exemplos. Se um trabalhador leva 10 dias para pintar uma parede comprida, então 10 trabalhadores podem pintar a mesma parede em apenas um dia. Essa é uma tarefa dita trivialmente paralelizável. Por outro lado, considere a escavação de um poço. Se um trabalhador leva 10 dias para cavá-lo, não ajuda se tivermos 10 trabalhadores. Essa tarefa não pode ser particionada. Considere agora o problema de cavar o túnel entre Inglaterra e França. Duas equipes, uma inglesa e outra francesa, cavam a partir de um país em direção ao outro até que se encontram em algum ponto no meio. Com isso diminui o tempo de construção pela metade. Dá para melhorar? Não sei. Moral da história: para usar bem a computação paralela a fim de resolver um problema, é preciso desenvolver um bom algoritmo paralelo.
O que o atraiu nessa área?
No início dos anos 1970, quando só havia uns cinco computadores paralelos no mundo, essa escolha poderia parecer estranha. Com a crescente procura de velocidade, a computação paralela era um caminho natural por permitir o uso simultâneo de vários processadores. Se a tarefa é paralelizável, então pode-se conseguir um ganho muito bom. A dificuldade reside em descobrir como paralelizar as tarefas.
Depois do doutorado nos EUA, fui um dos primeiros a trazer ao Brasil a pesquisa em computação paralela
O senhor foi pioneiro no estudo da computação paralela no país?
Sim. Depois de fazer o doutorado nos Estados Unidos, retornei ao Brasil em 1981 e fui um dos primeiros pesquisadores a trazer ao país esse novo campo de conhecimento. Naquela época, a computação paralela era pouco conhecida por aqui. Criei no IME-USP, onde lecionei por mais de 50 anos, o Laboratório de Computação Paralela e Distribuída [LCPD]. Com auxílio da União Europeia, por meio do programa ITDC [Information Technologies in Developing Countries], foi possível a aquisição de uma máquina paralela, Parsytec PowerXplorer, a primeira do gênero instalada no IME. Lembro o preço dela: US$ 212 mil em 1994, o equivalente a R$ 2,1 milhões em valores de hoje. Essa máquina foi fundamental para a execução de diversos projetos de pesquisa e realização de inúmeros trabalhos de mestrado e doutorado.
Quando descobriu a sua vocação para a computação?
Desde criança, tinha curiosidade em construir coisas. Por isso, fiz o vestibular para a Escola Politécnica da Universidade de São Paulo [Poli-USP]. Não pude fazer o concurso do ITA [Instituto Tecnológico de Aeronáutica], pois ainda não era naturalizado brasileiro. Para a minha surpresa, passei em segundo lugar. O primeiro colocado também foi aprovado no ITA e preferiu ir para lá. Acabei sendo o primeiro do vestibular de 1966 e recebi o Prêmio Michelangelo, dado por um empório cujo dono era Miguel Colassuono [prefeito de São Paulo de 1973 a 1975]. O prêmio era uma mesa de desenho ou um jogo de compassos da marca Kern – escolhi o segundo. Na Poli, cursávamos as mesmas disciplinas no primeiro biênio. A escolha da especialidade ocorria no segundo ou terceiro ano. Escolhi o curso de eletrônica, que tinha grande ênfase em matemática. Foi útil quando decidi mudar para ciência da computação.
Por que tomou essa decisão?
No meu segundo ano na Poli, cursei a disciplina de cálculo numérico, dada pelo professor Valdemar Setzer. Aprendi a programar em fortran [linguagem de computador da época] e criei programas para resolver problemas matemáticos usando cálculo numérico. Utilizei o primeiro computador da USP, um IBM 1620, usando cartões perfurados. Fiquei fascinado pela área. Convidado pelo professor Setzer, fiz estágio no Centro de Computação Eletrônica [CCE] da USP. Era o início da computação na universidade. O CCE, chamado originalmente de CCN, Centro de Cálculo Numérico, e o IBM 1620 foram responsáveis pela formação dos primeiros pesquisadores em computação no estado. Era um polo incubador de talentos. Ao terminar o curso na Poli, o professor Setzer me convidou para ser professor auxiliar no Departamento de Matemática Aplicada do IME. Isso foi em 1971. O contrato, sem concurso, precisava ser renovado periodicamente. Fiz o primeiro concurso para professor assistente em 1975, quando já era mestre. Para isso, precisei me naturalizar. Hoje a USP já admite estrangeiros como docentes.
O que o fascinou na computação?
Fiquei entusiasmado com a velocidade e a possibilidade de programar o computador para resolver os mais variados problemas. Para ter uma ideia da velocidade, repare no tempo que uma máquina precisa para multiplicar dois números. No IBM 1620, a multiplicação levava 4,96 milissegundos, ou seja, era possível fazer 200 multiplicações em 1 segundo. Hoje o supercomputador Frontier realiza 1,68 x 10^18 [168 seguido de 16 zeros] multiplicações por segundo. O fascínio pela velocidade influenciou a minha escolha pela computação paralela.
Quando começou a se dedicar a ela?
No doutorado. Comecei o mestrado em 1971 no IME-USP, no Programa de Matemática Aplicada, sob orientação do professor Setzer. Embora o tema de minha dissertação tenha sido ciência da computação, essa área ainda não era credenciada pelo MEC [Ministério da Educação]. Por isso, tive que satisfazer também as exigências do mestrado em Matemática Aplicada. Minha dissertação foi sobre a construção de um interpretador para Lisp, uma linguagem de programação muito usada em processamento simbólico, como linguagem natural, e em inteligência artificial. Em 1976 fui aceito para fazer o doutorado em ciência da computação na Universidade Carnegie Mellon, em Pittsburgh, uma das mais conceituadas na área no mundo. A seleção era rigorosa e a competição grande. Para impressionar a equipe de seleção, enviei minha dissertação em Lisp, mesmo ela estando em português. Para minha surpresa, fui aceito e acabei sendo o primeiro brasileiro a cursar o doutorado no Departamento de Ciência da Computação da universidade. Uma bolsa da FAPESP pagou as anuidades escolares. No meu primeiro ano, escolhi a computação paralela e o professor Hsiang-Tsung Kung aceitou ser meu orientador. Ele era tão workaholic que tinha um saco de dormir no escritório. Às vezes, nem voltava para casa. Uma vez ele quis marcar uma reunião na véspera de Natal, que não foi realizada pela recusa de vários membros da equipe. Outra curiosidade daquela época: quando ainda não havia internet, já tínhamos na universidade uma das primeiras redes de computadores do mundo, a Arpanet. Usávamos e-mail e boletins de mensagens. Havia listas de discussão em que você podia colocar coisas à venda, como numa rede social. A máquina que vendia Coca-Cola estava conectada à Arpanet. Recebi um banho de tecnologia no doutorado.
O que fez ao voltar ao Brasil?
Retornei em agosto de 1981 e no ano seguinte assumi a chefia do Departamento de Matemática Aplicada do IME – naquele tempo não havia ainda o Departamento de Ciência da Computação, que só seria criado em 1987. O interessante é que no início dos anos 1980 já havia empresas nacionais que montavam microcomputadores. Em 1984, coordenei um projeto aprovado pela FAPESP para a compra de um microcomputador. Com isso adquirimos o primeiro microcomputador no IME, um Nexus 1600, da Scopus, empresa criada por três colegas da Poli. Liguei para um deles e consegui um desconto. Com 704 kilobytes de memória, a máquina não tinha disco rígido, apenas dois discos flexíveis.
Como foi a implantação da primeira rede de internet da USP?
A primeira rede local do IME-USP, ligando estações de trabalho e microcomputadores 286, foi instalada em 1993, com apoio da FAPESP, em um projeto que coordenei. A tecnologia de então era cabo coaxial, com uma limitação de alcance de 180 metros. O cabo somente entrava numa sala onde havia um microcomputador instalado, dificultando a expansão. Os funcionários de serviços gerais do IME ajudaram na instalação. Em 2000, foi implantada a primeira rede sem fio do instituto, por meio de um aditivo concedido pela FAPESP dentro de um projeto temático, também sob minha coordenação. Foi uma das primeiras redes sem fio instaladas em universidades brasileiras, senão a primeira, com quatro pontos com gateways sem fio. O orçamento total foi de R$ 23,5 mil, um bom dinheiro para aquela época.
Quais os aprendizados do período em que dirigiu o IME?
Minha gestão ocorreu entre 1998 e 2002. Foi uma experiência e um aprendizado muito valiosos. Diferentemente de fazer pesquisa, como diretor lidei com pessoas, centenas de professores e funcionários, além dos alunos. Pude conhecer mais de perto como o instituto funcionava. O IME é enxuto, uma das unidades com o menor número de funcionários em relação ao número de professores. Por isso algumas seções tinham poucos funcionários e quando um tirava férias às vezes só sobrava um ou dois para cobrir toda a seção. Foi uma vivência muito rica durante os quatro anos de mandato. Nesse período, enfrentei várias greves. Vale mencionar também uma ameaça de bomba, senão me engano durante uma semana de provas. Tivemos que evacuar os prédios e esperar lá fora enquanto o esquadrão antibombas vasculhava cada canto dos edifícios. Era um alarme falso.
O senhor estava no IME na passagem do milênio, quando havia o temor do propalado Bug do Milênio, que poderia causar um caos nos sistemas de computação em todo o mundo. Que lembranças tem dessa época?
O processamento de dados corporativos de toda a USP, como folha de pagamento, sistemas de alunos e a parte financeira, era feito em um computador de grande porte em forma de leasing. No início dos anos 1990 iniciou-se um projeto de gradualmente migrar os processamentos para a chamada plataforma cliente-servidor, onde modernas estações de trabalho atuariam como servidores e computadores serviriam como clientes. Esse esforço monumental foi realizado por uma equipe de cerca de 50 analistas de sistemas do Departamento de Informática [DI]. O primeiro sistema que entrou em ação ganhou o nome de Fênix e serviu o processamento da pós-graduação. De 1995 a 1998 assumi a direção do DI. Durante o meu mandato criamos o sistema Júpiter para o processamento de dados dos alunos de graduação. Outros sistemas – Marte para recursos humanos e Mercúrio para a área financeira – continuaram a ser desenvolvidos e foram concluídos posteriormente. Essa migração para uma plataforma moderna, executada por uma equipe competente, foi o motivo de não ter havido problemas com o tão temido Bug do Milênio.
Quais os projetos mais importantes de que participou no IME?
Além do projeto submetido à União Europeia que permitiu a compra do primeiro computador paralelo da USP, conduzi um conjunto de projetos submetidos à FAPESP e ao CNPq [Conselho Nacional de Desenvolvimento Científico e Tecnológico] para a infraestrutura de informática do instituto. Além de viabilizar a instalação de redes de computadores, com fio e sem fio, foi possível equipar o Laboratório de Informática de inúmeras estações de trabalho [servidores] e microcomputadores. Foi relevante também um projeto no âmbito de um edital da Finep [Financiadora de Estudos e Projetos] que possibilitou a construção de um prédio para sediar o Centro de Competência em Software Livre [CCSL] e laboratórios de pesquisa.
Fascinou-me a velocidade da computação e a possibilidade de programar o computador para resolver problemas variados
O senhor participa do projeto “INCT da Internet do futuro”. O que exatamente faz?
Atuo em um subprojeto [“Parallel algorithms and heuristics for smart cities problems”] do programa Institutos Nacionais de Ciência e Tecnologia voltado à criação de algoritmos para solucionar problemas de cidades inteligentes envolvendo a teoria dos grafos [ramo da matemática que estuda as relações entre objetos de um determinado conjunto, associando-os por meio de estruturas chamadas grafos]. Um importante resultado obtido é o desenvolvimento de um algoritmo paralelo para o problema de árvore geradora mínima. Um grafo consiste em um conjunto de vértices e de arestas. Uma aresta pode ligar dois vértices; e pode haver pesos nas arestas. Muitos problemas podem ser modelados por grafos. Por exemplo, um vértice pode representar uma cidade e uma aresta pode representar uma estrada que liga duas cidades. Uma árvore geradora mínima é um subconjunto de um grafo dado, que continua conectado, com uma soma mínima das arestas. Publicado em uma conferência do IEEE [Institute of Electrical and Electronics Engineers], nos Estados Unidos, recebeu o prêmio de melhor artigo do evento.
Apesar do envolvimento com pesquisa e cargos de chefia, o senhor nunca deixou de lecionar.
Sempre gostei de dar aula. Para mim, é uma satisfação ver o aluno ou a aluna aprender algo novo. Hoje sou professor sênior no IME e mesmo aposentado continuo a dar aulas no bacharelado em ciência da computação. Mas não oriento mais na pós-graduação. Minha relação com os estudantes sempre foi muito boa. Em 2023, completei 53 anos como docente do IME. Devo ter dado aulas para cerca de 115 turmas com um total aproximado de 4,5 mil alunos. Uma curiosidade: no início dos anos 1970 dei aula para dois jovens que depois se casaram. Orientei o mestrado do rapaz. Anos depois dei aula para uma filha deles. Cada ano que passa, fico mais velho, mas meus alunos continuam com a mesma idade.
Que trabalhos destacaria de sua produção acadêmica?
Eu citaria dois. O primeiro [“An efficient parallel garbage collection system and its correctness”] foi publicado em 1977 no Proceedings of the 18th IEEE Annual Symposium on Foundations of Computer Science, numa época em que poucos brasileiros tinham trabalhos aceitos por esse prestigioso evento. O tema dele, coleta de lixo concorrente, despertou enorme interesse. A coleta de lixo é um método computacional para reciclar memórias alocadas, mas não mais usadas. O processador teria que parar a execução de um programa quando faz a coleta de lixo. A coleta de lixo concorrente usa um processador adicional enquanto o outro continua executando o programa em paralelo. Até hoje há publicações a respeito.
Como vê a evolução tecnológica sofrida pela computação?
Tenho acompanhado com atenção a tecnologia para a construção de computadores nos últimos 50 anos. Os primeiros usavam válvulas e ocupavam um andar inteiro. Depois veio a geração de transistores. O IBM 1620 que usei na USP foi um dos primeiros computadores daquela geração. Os componentes eletrônicos, como transistores, resistores e capacitores, eram discretos, mas ocupavam certo espaço. Na geração de circuitos integrados, baseados em silício, os componentes eletrônicos podiam ser integrados em uma minúscula pastilha. É a chamada técnica da microeletrônica, na qual o transistor MOS é o tijolo, elemento básico para a construção do processador e da memória. A partir do transistor, constrói-se a chave liga-desliga, o resistor, o capacitor e as portas lógicas. Em 1978, os primeiros transistores NMOS, uma evolução dos MOS, tinham dimensão de cerca de 25 micrômetros. Os primeiros circuitos integrados ou pastilhas continham alguns milhares de transistores. Acontece que o transistor vem diminuindo de tamanho a cada ano e o número de transistores que cabem numa pastilha vem dobrando a cada 18 a 24 meses – a conhecida Lei de Moore. Hoje um transistor tem apenas 7 nanômetros. Para termos uma noção do que significa essa miniaturização, vamos considerar que a pastilha possa conter uma região geográfica. Se em 1978 ela continha uma região equivalente à Grande São Paulo, hoje já pode conter todo o planeta. Essa analogia explica o avanço fantástico que estamos vivenciando. Estima-se que em alguns anos chegaremos a um transistor de 5 ou até 3 nanômetros. Mas a era do transistor de silício está no seu final – e a Lei de Moore vai deixar de valer. Novas tecnologias estão para aparecer. Uma forte aposta é a computação quântica. Mas, antes dela, vários materiais são candidatos a substituir o silício, como o grafeno, o arseneto de boro cúbico, entre outros.
Que avaliação faz do ensino e da pesquisa em computação no país?
O desenvolvimento da área de computação está intimamente ligado à pós-graduação em ciência da computação. Nas últimas cinco décadas, o número desses cursos de pós-graduação vem crescendo de ano para ano no país. Hoje temos 85 programas de pós-graduação com um total de 123 cursos, sendo 68 de mestrado acadêmico, 41 de doutorado e 14 de mestrado profissional. Em 2005, apenas dois programas em ciência da computação receberam conceitos 6 ou 7, o que os classificava como de nível internacional. Na avaliação do triênio 2019-2022, esse número pulou para 10, dos quais 7 receberam conceito 7, o máximo. Programas com conceitos 6 e 7 recebem recursos extras para as suas atividades, o que é algo positivo, mas ainda há muitos programas com conceitos 3 e 4, alguns com grande dificuldade de aperfeiçoamento. Creio que esses programas poderiam receber algum incentivo em recursos para melhorar seu desempenho.
Sempre gostei de lecionar. Em 2023, completei 53 anos como docente da USP. Devo ter dado aulas para cerca de 4.500 alunos
O senhor é chinês. Como sua família veio para o Brasil?
Nasci em Xangai durante a Segunda Guerra Mundial. Quando tinha 6 anos, minha família se mudou para Hong Kong. Lá fiz o curso primário e o ensino médio. Em Hong Kong fala-se o dialeto cantonês. Como eu só falava xangainês, comecei os estudos numa escola onde as aulas eram dadas em mandarim, idioma oficial na China, que é mais parecido com o xangainês. Depois mudei para um colégio com aulas em cantonês e, nos meus últimos quatro anos de estudo, frequentei uma escola muito prestigiosa, Wah Yan College, de jesuítas irlandeses, onde as aulas eram dadas em inglês. Era uma confusão de dialetos e línguas diferentes que muito me marcou. Quando criança, eu já falava dois dialetos – xangainês e cantonês –, além do mandarim e do inglês. Isso facilitou minha adaptação quando mudamos para o Brasil.
E a vinda para cá?
Viemos para o Brasil em 1959, quando eu tinha 15 anos. Meus pais queriam oferecer melhores oportunidades para seus filhos em termos de educação superior. Em Hong Kong havia poucas universidades, todas pagas e caras. Meu pai era professor na Faculdade de Direito da Université l’Aurore, em Xangai, administrada por jesuítas franceses, onde havia se graduado, e tinha alunos formados trabalhando no exterior. Quando ele decidiu emigrar, consultou vários ex-alunos para decidir qual seria o nosso destino. Dois deles – um que trabalhava em Luxemburgo e outro em Saigon, no Vietnã – contataram meu pai sobre possíveis trabalhos nesses dois países. Durante essa negociação, o ex-aluno do Vietnã arrumou um novo emprego em São Paulo. E convidou o meu pai. Assim, viemos todos para cá. O primeiro emprego de meu pai foi numa empresa francesa, chamada Mecânica Pesada, em Taubaté. Assim, pudemos imigrar para o Brasil como residentes permanentes.
Como foi chegar em um país tão diferente?
Tive que me adaptar. Precisei fazer um ano como ouvinte no Colégio Nossa Senhora do Carmo para aprender português e me preparar para os chamados exames de adaptação, que incluem história do Brasil, português e todas as disciplinas que não constaram no meu currículo escolar feito em Hong Kong. O meu conhecimento em inglês foi fundamental para aprender português. Passei nos exames de adaptação e me matriculei no 3º ano do curso ginasial. Fiz o colegial em uma escola pública, o Colégio Estadual de São Paulo, no Parque Dom Pedro.
Voltou à China?
Desde que cheguei ao Brasil, fui somente três vezes à China, todas para apresentação de trabalhos científicos em conferências. A primeira foi em 2000. Em todas as viagens incluí uma estada em Xangai, onde inclusive fui ver o prédio onde passei a minha infância. Devo muito do que sou e ao que consegui fazer à generosidade deste país que é o Brasil, que me acolheu e onde pude fazer colégio e universidade públicos, gratuitos e de qualidade. E onde há agências de fomento, como a FAPESP, o CNPq e a Capes [Coordenação de Aperfeiçoamento de Pessoal de Nível Superior], que viabilizaram o avanço da minha carreira.