jueves, 8 de diciembre de 2011

GNU Plot



Gnuplot é um portátil de linha de comando utilitário gráfico orientado para linux, OS / 2, MS Windows, OSX, VMS, e muitas outras plataformas. O código fonte é distribuído gratuitamente, mas direitos autorais (ou seja, você não tem que pagar por isso). Ele foi originalmente criado para permitir que cientistas e estudantes possam visualizar funções matemáticas e dados de forma interativa, mas tem crescido para apoiar muitos não-interativas, tais como web usa scripting. Ele também é usado como um motor de plotagem por aplicativos de terceiros como o Octave. Gnuplot tem sido apoiado e em desenvolvimento ativo desde 1986.
Gnuplot suporta muitos tipos de terrenos em ambos os 2D e 3D. Pode desenhar usando linhas, pontos, caixas, contornos, campos vetoriais, superfícies e texto vários associados. Ele também suporta vários tipos de gráficos especializados.
Gnuplot suporta muitos tipos diferentes de saída: terminais de tela interativa (com mouse e entrada hotkey), saída directa para plotters de caneta ou impressoras modernos, e saída para muitos formatos de arquivo (eps, figo, jpeg, LaTeX, METAFONT, pbm, pdf, png , postscript, svg, ...). Gnuplot é facilmente extensível para incluir novos modos de saída. Adições recentes incluem um terminal interativo baseado em wxWidgets ea criação de gráficos para visualização mousable web usando o elemento canvas HTML5.

jueves, 17 de noviembre de 2011

Bio Informatica


corresponde a aplicação das técnicas da Informática, no sentido de análise da informação na área de estudo da Biologia. Uma definição ampla e tentativa é então: (Bio)informática é o estudo da aplicação de técnicas computacionais e matemáticas à geração e gerenciamento de (bio)informação.

Alguns experts brasileiros da área acreditam que a bioinformática, como se entende tradicionalmente no meio acadêmico e não pela análise da palavra, é circunscrita à Biologia Molecular às vezes ainda mais especificamente restrita à Genômica. Outros acadêmicos, por outro lado, advogam a noção mais abrangente do termo para algo na direção da definição envolvendo informação biológica de modo geral.

A Bioinformática combina conhecimentos de química, física, biologia, ciência da computação, Informática e matemática/estadística para processar dados biológicos ou biomédicos.

Buscando tratar os dados, é necessário desenvolver softwares para, por exemplo: identificar genes, prever a configuração tridimensional de proteínas, identificar inibidores de enzimas, organizar e relacionar informação biológica, simular células, agrupar proteínas homólogas, montar arvores filogenéticas, comparar múltiplas comunidades microbianas por construção de bibliotecas genômicas, analisar experimentos de expressão gênica entre outras inúmeras aplicações.

miércoles, 26 de octubre de 2011

Problema da Cadeia de Caracteres mais Próxima



Nesta postagem apresentaremos a definição do Problema da Cadeia de Caracteres mais Próxima, porém antes introduziremos algumas notações que possibilitarão uma melhor compreensão do PCCP.
Seja Σ = {c1,...,ck} um conjunto finito de elementos, denominado caracteres, a partir dos quais cadeias de caracteres podem ser construídas. Cada cadeia de caracteres corresponde a uma seqüência (s1,...,sm), com si ∈ Σ, onde Σ é o alfabeto utilizado. O tamanho de uma cadeia de caracteres s, denotado por |s|, corresponde ao número de elementos (ou caracteres) na seqüência que compõe a cadeia s. Por exemplo, se s = (s1,...,sm) então |s| = m.
Várias medidas têm sido propostas para encontrar as similaridades (ou diferenças) entre as seqüências. A mais utilizada é a distância de Hamming. Uma justificativa mais técnica para o uso freqüente da distância de Hamming na comparação de seqüências em biologia molecular. A distância de Hamming entre duas cadeias de caracteres, denotada por dH(a,b), tal que |a| = |b|, corresponde ao número de posições nas quais as seqüências diferem. Assim, para o alfabeto Σ = {A,C,G,T} e as cadeias de caracteres a = CATCC e b = CTTGC temos dH(a,b) = 2.
Considere agora um conjunto S = {s1,...,sn} de cadeia de caracteres, com |si| = m, deseja-se encontrar uma seqüência t, com |t| = m, que minimize o valor da distância k, tal que, dH(si,t) ≤ k para cada cadeia de caracteres si ∈ S.
Como dito anteriormente, o Problema da Cadeia de Caracteres mais Próxima é NP-difícil. Os autores demonstraram que para um k fixo, o PCCP pode ser resolvido em tempo polinomial.

martes, 20 de septiembre de 2011

Introdução à Inteligência Artificial on-line



Um experimento ousado em educação distribuída, "Introdução à Inteligência Artificial", será oferecido gratuitamente e on-line para estudantes em todo o mundo a partir de 10 outubro - 18 dezembro 2011. O curso incluirá um feedback sobre o progresso e uma declaração de realização. Ministrado por Sebastian Thrun e Norvig Peter, o currículo faz do que é utilizado no curso introdutório de Inteligência Stanford Artificial. Os instrutores vão oferecer materiais similares, atribuições e exames.
acesse ao curso pelo link http://www.ai-class.com/

Peter Norvig é diretor de pesquisa do Google Inc. Ele também é membro da Associação Americana para a Inteligência Artificial ea Association for Computing Machinery. Norvig é co-autor do livro Inteligência Artificial populares: Uma Abordagem Moderna. Antes da Google joing ele era o chefe da Divisão de Ciências da Computação na NASA Ames Research Center.

Sebastian Thrun é um Professor de Pesquisa de Ciência da Computação da Universidade de Stanford, um Google Fellow, membro da Academia Nacional de Engenharia e da Academia Alemã de Ciências. Thrun é mais conhecido por suas pesquisas em robótica e aprendizagem de máquina.


sábado, 20 de agosto de 2011

Unidade de processamento gráfico



GPU (Graphics Processing Unit, ou Unidade de Processamento Gráfico), conhecido também como VPU ou unidade de processamento visual, é o nome dado a um tipo microprocessador especializado em processar gráficos em computadores pessoais, estações de trabalho ou videogames. GPUs modernas manipulam gráficos computadorizados com eficiência e sua estrutura de processamento paralelo os tornam mais capazes neste tipo de trabalho que CPUs normais. Uma GPU normalmente é utilizada em placas de vídeo mas versões simplificadas são integradas diretamente em placas-mãe.




miércoles, 17 de agosto de 2011

Message Passing Interface (MPI)


Message Passing Interface (MPI) é um padrão para comunicação de dados em computação paralela. Existem várias modalidades de computação paralela, e dependendo do problema que se está tentando resolver, pode ser necessário passar informações entre os vários processadores ou nodos de um cluster, e o MPI oferece uma infraestrutura para essa tarefa.

No padrão MPI, uma aplicação é constituída por um ou mais processos que se comunicam, acionando-se funções para o envio e recebimento de mensagens entre os processos. Inicialmente, na maioria das implementações, um conjunto fixo de processos é criado. Porém, esses processos podem executar diferentes programas. Por isso, o padrão MPI é algumas vezes referido como MPMD (multiple program multiple data). Elementos importantes em implementações paralelas são a comunicação de dados entre processos paralelos e o balanceamento da carga. Dado o fato do número de processos no MPI ser normalmente fixo, neste texto é enfocado o mecanismo usado para comunicação de dados entre processos. Os processos podem usar mecanismos de comunicação ponto a ponto (operações para enviar mensagens de um determinado processo a outro). Um grupo de processos pode invocar operações coletivas (collective) de comunicação para executar operações globais. O MPI é capaz de suportar comunicação assíncrona e programação modular, através de mecanismos de comunicadores (communicator) que permitem ao usuário MPI definir módulos que encapsulem estruturas de comunicação interna.

O objetivo de MPI é prover um amplo padrão para escrever programas com passagem de mensagens de forma prática, portátil, eficiente e flexível. MPI não é um IEEE ou um padrão ISO, mas chega a ser um padrão industrial para o desenvolvimento de programas com troca de mensagens.

martes, 16 de agosto de 2011

thread


Linha de execução (em inglês: Thread), é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente. O suporte à thread é fornecido pelo próprio sistema operacional (SO), no caso da linha de execução ao nível do núcleo (em inglês: Kernel-Level Thread (KLT)), ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT).

Uma linha de execução permite que o usuário de programa, por exemplo, utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações.

Em hardwares equipados com uma única CPU, cada linha de execução(Thread) é processada de forma aparentemente simultânea, pois a mudança entre uma linha e outra é feita de forma tão rápida que para o usuário isso está acontecendo paralelamente. Em hardwares com multiplos CPUs ou multi-cores as linhas de execução(Threads) podem ser realizadas realmente de forma simultânea;

Os sistemas que suportam apenas uma única linha de execução são chamados de monothread e aqueles sistemas que suportam múltiplas linhas de execução são chamados de multithread.