Anda di halaman 1dari 4

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2009

Computao Paralela e Educao: um Elo Promissor


Breno S. Arajo; Igor Alves Perdigo; Jorge Moiss Assis Pontifcia Universidade Catlica de Minas Gerais {brenopuc, igorperdigaobh, jorge.moises.assis}@gmail.com

Resumo
inegvel a importncia do ensino de programao paralela nos cursos de graduao em Tecnologia da Informao. Contudo, a importncia merecida no dada desde o incio do curso. Eventos isolados no so capazes de mudar a filosofia daqueles que lecionam. Assim, necessrio alertar sobre a importncia do paralelismo nas mais diversas reas da computao. O objetivo deste artigo propor medidas para solidificar o ensino de programao paralela nos cursos de graduao. Desta forma a arquitetura hoje disponvel e a programao ficaro em sintonia.

1. Introduo
As dificuldades encontradas na programao paralela no so novidade. Existem pesquisas referentes a esta rea h pelo menos trs dcadas [1]. Alm disso, nos dias de hoje a maioria dos computadores vendidos, inclusive para uso domstico, possuem processadores com no mnimo dois ncleos fsicos [2]. Porm, o ensino da programao paralela nos cursos de graduao ainda no proporcional a crescente utilizao desta arquitetura. O constante aumento da demanda de processamento por aplicaes atuais e as limitaes fsicas definidas como dissipao de calor e consumo de energia esto fazendo com que os processadores mono-ncleo entrem em desuso. O paralelismo est substituindo gradativamente o modelo sequencial. Entretanto, a programao sequencial ainda possui um destaque muito maior do que a paralela nos cursos de graduao em computao. Vrias conferncias abordam o paralelismo, como por exemplo, Grandes Desafios da SBC [3]. Todavia, estes eventos no vm surtindo efeito nas salas de aula. Nenhum deles destaca a importncia do ensino de computao paralela, de maneira mais aprofundada, no incio dos cursos de tecnologia da informao. preciso tornar a programao paralela algo to natural quanto a programao sequencial. necessrio

mostrar aos profissionais que lecionam na rea o quo importante a utilizao de cdigos paralelos para, ento, conseguir extrair a capacidade mxima das arquiteturas paralelas emergentes. De nada adianta existirem arquiteturas paralelas com grande potencial se no houver softwares adequados s mesmas. O uso de multi-ncleos no demonstra vantagem caso o software seja seqencial. Por exemplo, a aplicao NotePad comumente encontrada nos sistemas Windows seqencial. J a aplicao NotePad++ [11] paralela capacitando o usurio a abrir mais de um arquivo sob um mesmo processo e realizar pesquisas pelo texto de forma paralela. No primeiro caso, apenas um ncleo trabalha enquanto os demais ficam inativos. J no segundo, caso o usurio mande pesquisar por uma palavra observado que os dois ncleos entram em uso. Introduzir a programao paralela durante o incio dos cursos de graduao o fator primordial para que esta tcnica seja difundida e consequentemente mais explorada. Desenvolver sistemas de qualidade que atendam as demandas dos processos atuais e que faam melhor uso das arquiteturas paralelas tornou-se algo necessrio [1].

2. Situao Atual
Artigos e congressos do tipo grandes desafios que tratavam, em alguma parte, sobre computao paralela j foram realizados nacional e internacionalmente. Entretanto, os resultados esperados no foram - e no so fceis de ser - alcanados. De um modo geral, no comum encontrar desafios propostos completos ao final do tempo esperado. No caso da computao paralela, no difcil perceber que, apesar dos desafios e propostas, o ensino da mesma continua praticamente igual ao de 10 anos atrs, sem nenhuma melhoria ou aprimoramento significativo. Em contrapartida, a realidade outra. Computadores com vrios ncleos no so novidade no mercado. Qualquer mquina pessoal domstica com

38

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2009

mais de um ncleo pode ser encontrada em vrias lojas. Assim, o ensino de computao paralela fortemente recomendado para atender a demanda do mercado e ncleos de pesquisa. J existem cursos especializados em computao distribuda [4]. No entanto, essa uma abordagem excludente. O aluno ficaria demasiadamente atrelado em um paradigma. O que proposto a simbiose entre o ensino da programao sequencial com a programao paralela. Outro problema atual a falta de literatura especfica. Os livros referentes a algoritmos geralmente possuem foco nas arquiteturas sequenciais [5]. Os livros que contm material sobre algoritmos paralelos destinam um ou dois captulos para este assunto. Um dos livros que se tem conhecimento e que aborda algoritmos paralelos [6] extremamente complexo para alunos que se encontram no incio de um curso de graduao. A seguir so apresentadas algumas propostas que objetivam mudar a situao atual em que nos encontramos. As medidas vo desde a introduo da arquitetura paralela em simpsios at sua efetivao nas salas de aula. A abordagem de ensino ideal est longe de ser definida. Sugerimos que os leitores acessem o seguinte grupo de discusso [10] para que seja possvel formular uma metodologia mais agradvel aos alunos iniciantes.

Processamento de Imagens, so meios frteis para que a idia seja ampliada. Outras reas como engenharia de software tambm deveriam ser focadas para que os processos de desenvolvimento evolussem. Uma vez que os processos acatassem a computao paralela, ficaria mais explcito para os especificadores e implementadores a importncia desse paradigma. J se sabe, por exemplo, que operaes sobre matrizes podem ser feitas de forma paralela, baixando o tempo computacional de processamento significativamente. Por qu simpsios? A explicao simples: so nos simpsios que se renem professores e pesquisadores das respectivas reas de abordagem. Logo, esses encontros se tornam lugares ideais para troca de idias e conhecimento, alm de abrigar um pblico com grande potencial na pesquisa e na inovao. possvel concluir ento que, as pessoas que devem ser convencidas da importncia da computao paralela so aquelas que representam o meio acadmico, local de pesquisa e busca por meios e resultados novos.

3.2. Consolidao da Literatura


Como visto em [2, 6], os livros que tratam do ensino de programao paralela so escassos. Existem poucos livros que abordam o assunto de maneira especifica. Os outros poucos que tomam este tema como sua abordagem central so demasiadamente complexos para alunos ingressantes nos cursos de computao. Parte do desinteresse dos alunos em relao programao paralela causada pela falta de literatura neste assunto [6]. Assim como a ramificao em simpsios, o aumento da literatura sobre algoritmos paralelos um dos passos fundamentais para despertar interesse de professores e alunos. Existem muitos artigos que enfocam o ensino de programao paralela no incio dos cursos de computao. Mas no existe nenhum material como, por exemplo, livros que abordem este assunto de maneira introdutria. A produo de material bsico sobre computao paralela fundamental para os passos que se seguem.

3. Proposta
Existem vrias medidas que podem ser adotadas para solidificar o ensino de programao paralela na graduao. Solidificao esta que possui como objetivo disseminar o interesse e a pesquisa em arquiteturas paralelas. Neste captulo as principais medidas sero apresentadas. Cada subseo desta seo representa um passo a ser seguido. A ordem dos mesmos representa a sequncia ideal de execuo para obter o melhor resultado. importante que se ressalte que todas as propostas contidas neste documento so resultados de reflexes e discusses. Portanto, possvel existir discordncia, dada a subjetividade do contedo.

3.1. Ramificao em Outros Simpsios


No h melhor meio para disseminar o ensino de computao paralela do que demonstrar como o mesmo importante nas mais diversas reas. Simpsios que tratam do processamento de imagens digitais, como o Simpsio Brasileiro de Computao Grfica e

3.2. Incentivo aos Professores


medida que os alunos se inserem no contexto do mundo paralelo, tanto no mercado como no meio acadmico, eles se vem mais motivados a aprender tal paradigma. Os professores em geral se sentem mais confortveis em lecionar aquilo que dominam e, ao

39

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2009

mesmo tempo, aquilo que interessa aos alunos. Assim um fato incentivador aos professores est na ateno que os alunos tendem a despertar quando se trata desse novo paradigma. O prprio aumento da literatura na rea de programao paralela ser um estimulo para os professores. Estes sero capazes de preparar melhor suas aulas. Tero o apoio de materiais concretos que alm de reforar a teoria, iro ajud-los a propor exerccios prticos. Outro ponto incentivador est no fato da computao paralela ser tratada como pesquisa de ponta. A maioria dos alunos gosta de trabalhar sobre aquilo que ainda vai acontecer, ou seja, tecnologias emergentes e desafiadoras, que ainda esto atingindo o mercado. Isso d uma idia de fazer a diferena, pesquisar sobre algo que realmente pode alterar e inovar conceitos j conhecidos. Da o grande interesse. medida que os professores comearem a introduzir a computao paralela nos cursos de graduao, iro consolidar mais seus conhecimentos no assunto. Como de consenso geral que o paralelismo algo necessrio, os professores j estaro mais preparados para quando a computao paralela substituir de fato a sequencial. Alm disso, um maior nmero de professores capacitados implica num maior nmero de alunos capacitados.

3.4. Motivar o Aluno


Para inserir e atrair os alunos ao aprendizado desse novo paradigma seria interessante abordar algumas prticas em sala de aula. Entre eles, se destacam, por exemplo: Melhoria de desempenho: nesta prtica, o aluno teria a oportunidade de alterar um software, hardware ou ambos para medir o quo mais rpido fica um sistema. Isso evidenciaria a importncia de um sistema paralelo. Sistemas que deveriam ser paralelos e so tratados sequencialmente: sistemas como redes neurais artificiais [4] so naturalmente paralelos. Contudo a maioria das redes neurais implementadas em software so desenvolvidas de forma sequencial. muito mais natural para o aluno pensar em uma rede como unidade paralela do que sequencial. Mostrar ao aluno esse fato essencial. Aprimoramento de algoritmos: algoritmos de ordenao como o QuickSort so considerados rpidos quando comparados ao outros, como o BubleSort. E quanto ao

QuickSort paralelo? Deve-se mostrar ao aluno como a mudana na estrutura de um algoritmo melhora seu desempenho sem modificar sua idia. Modelos paralelos: atualmente, a engenharia de software, lecionada nas universidades, trata muito pouco de paralelismo em seus modelos. Diagramas de atividades possuem nodos de transio paralela, mas que so pouco abordados em sala. Deve-se dar a devida importncia modelagem de sistemas paralelos. Alm disso, no se deve esquecer que os requisitos no funcionais podem modificar completamente a deciso de qual paradigma deve-se seguir. Ao lecionar programao paralela, os professores devem ficar atentos s dificuldades dos alunos. Condies de Corrida e excluso mtua so mais fceis de assimilar, enquanto determinar a escalabilidade e diviso de tarefas se mostram mais complexas [7]. Sendo assim, deve-se dedicar mais tempo s tarefas com grau de dificuldade maior. A comunicao entre os processos, ou threads, tambm deve ser lecionada com mais cautela. Os desenvolvedores em geral tm dificuldade em modelar essa interao [7]. Existem diversas ferramentas como o Eclipse Parallel Tools Platform [8], que podem auxiliar os alunos a depurar e entender seus programas paralelos. Outra abordagem interessante comear a lecionar conceitos sobre algoritmos paralelos e engenharia de software no ensino mdio [9] ou, no caso do Brasil, nos cursos tcnicos. Essa concepo defende que nunca cedo demais para inserir os conceitos considerados complexos da computao na realidade dos alunos. A abordagem citada acima faz grande sentido. fcil e natural perceber que, quanto mais contato uma pessoa tem com determinado assunto o mais cedo possvel (mesmo que de forma simplificada), maior domnio sobre o assunto ela ter e, principalmente, ter grandes chances de ter idias inovadoras relacionadas ao tema.

4. Efeitos Esperados
Para que a computao paralela seja abordada desde o incio dos cursos de graduao preciso comear atravs dos professores. Estes so os maiores frequentadores de simpsios e conferncias. Assim, caso a maioria desses eventos mostrem a devida importncia da computao paralela, inevitvel que esse conhecimento seja passado para frente em sala de aula.

40

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2009

Observando esse efeito pode-se definir que, futuramente, alm dos simpsios e conferncias, sero necessrios eventos de carter competitivo para instigar os alunos a se aprofundarem no paradigma da computao paralela. s vezes, a competitividade encarada como algo negativo, mas quando combinada com temas atuais e inovadores, tendo o intuito de despertar interesses e fomentar pesquisas, uma ferramenta poderosssima. Em longo prazo, pode-se esperar uma grande evoluo de tcnicas e meios de realizao da computao paralela, uma vez que esta ser praticamente uma das bases do ensino em cincia da computao. esperado (mas no previsto) tambm que, com o passar do tempo, haja um vasto material de ensino de computao paralela e, mais adiante, at uma rede online seria passvel de implementao, possibilitando acesso a esse conhecimento a vrios outros grupos e comunidades.

Research Challenges in Computer Science and Engineering Monterey Bay, California, December 4-7, 2005. [2] A. Marowka, Think Parallel: Teaching Parallel Programming Today," IEEE Distributed Systems Online, vol. 9, no. 8, 2008, art. no. 0808-o8002. [3] A. de Carvalho, Grandes Desafios da Pesquisa em Computao no Brasil 2006 a 2016, May 8-9, 2006.

[4] R. Buyya, S. Venugopal, "Cluster and Grid Computing: A Graduate Distributed-Computing Course," IEEE Distributed Systems Online, vol. 8, no. 12, Dec., 2007.
[5] O. Bonorden, B. Juurlink, I. Otte and Ingo Rieping. Parallel Computing, The Paderborn University BSP (PUB) Library, 2003 . 29:187207. [6] C. W. Kessler, Teaching parallel programming early, Proceedings of Workshop on Developing Computer Science Education, March 10, 2006. [7] Eccles, R. and Nonneck, B. and Stacey, D.A. Exploring parallel programming knowledge in the novice, High Performance Computing Systems and Applications, 2005. HPCS 2005. [8] Site. Eclipse Parallel Tools Platform http://www.eclipse.org/proposals/eclipse-ptp/ URL:

5. Concluso
A realizao de eventos do tipo grandes desafios condio necessria, mas no suficiente para que o ensino de computao paralela invada as salas de graduao em tecnologia da informao. preciso que esse novo paradigma seja citado nos mais diversos congressos, simpsios e conferncias. Dessa forma provvel que os professores, at mesmo os mais conservadores, lecionem focando essa nova forma de desenvolver. A partir do momento em que a computao paralela deixar de ser considerada algo extracurricular e passar a ser incorporada no plano de ensino de uma graduao em todos os cursos ligados tecnologia da informao, teremos uma quantidade bem maior de recursos humanos capacitados e motivados a implementar e implantar solues baseadas em computao paralela. Pode-se concluir tambm que, com a realizao da proposta deste artigo e com a subsequente ocorrncia da previso feita no pargrafo acima, vrias empresas tero seus problemas sanados ou pelo menos parcialmente solucionados. A computao paralela pode aumentar o desempenho e a velocidade de vrios sistemas.

[9] A. Rifkin, Teaching parallel programming and software engineering concepts to high school students, Proceedings of the twenty-fifth SIGCSE symposium on Computer science education, Phoenix, Arizona, United States, p.26-30, March 10-12, 1994. [10] Grupo de Discusso. Programao e Arquitetura Paralela URL:http://groups.google.com/group/programacaoarquitetura-paralela [11] Site. NotePad++ http://sourceforge.net/projects/notepad-plus/ URL:

6. Referncias
[1] M. J. Irwin and J. P. Shen, Revitalizing Computer Architecture Research, CRA Conferences on Grand

41