Técnicas para desenvolvimento e aceleração de códigos científicos


Prof. Edson Borin
Instituto de Computação
Universidade Estadual de Campinas
Raul Baldin
Faculdade de Engenharia Civil, Arquitetura e Urbanismo
Universidade Estadual de Campinas

Atividade Prática: Introdução ao laboratório

Nesta atividade, aprenderemos a utilizar a infraestrutura do laboratório.

Conceitos Básicos

Terminal:

O terminal nada mais é que um interpretador de comandos. (É como 'Processador de comandos' (janela DOS) do Windows) Ele pode ser do tipo sh, bash, csh, ksh, etc. O padrão é sh ou bash. A Figura abaixo mostra uma janela com um terminal bash.


Terminal bash

Bash e Sh são linguagens de script, isto é, podemos criar uma lista de comandos sequenciais, funções, etc, para realizar diversas tarefas. Depois, basta salvá-los como scripts, e executá-los.

OBS: letras maiúsculas e minúsculas são consideradas diferentes!

    <nome_comando> <-op1> <-op2> <-opN>
    <nome_comando> <--help> OU <-h>

    man <nome_comando>

Editor

Editores são pequenos programas usados para edição de arquivos texto e códigos fonte. (Como o Notepad, do Windows e o antigo Edit do DOS). A figura abaixo mostra um exemplo de editor.

Eles existem em versões linha de comando e gráficas:


Editor gedit

Compilador

Compiladores são um conjunto de ferramentas que transformam uma linguagem fonte em uma linguagem de máquina destino.

Seu principal uso é para criar executáveis e bibliotecas.

Como compilar um programa C/C++, usando o gcc?

    gcc -g -o HelloWorld helloworld.c

Opções mais utilizadas:
-g : Inclui os símbolos de debug dentro do executável
-o : Nomeia o executável que será criado (o padrão é criar um arquivo chamado a.out)

Rodando programas:

1) Ir até o diretório onde ele está localizado

    cd dir_do_programa

2) Chamar o executável

    ./executavel <arg1> <...> <argN>

O sistema de arquivos da família Unix:

É baseado em árvore com uma única raiz (o diretório raiz é o "/")

Todos os outros diretórios estão abaixo do raiz, inclusive outros sistemas de arquivos, outros discos e mapeamentos de rede.

OBS:
Todos os diretórios possuem os subdiretórios:
. O próprio diretório
.. Seu diretório pai

Exemplo:

/
├── bin
├── boot
├── cdrom
├── dados
├── dev
├── etc
├── home
│   ├── usuario1
│   └── usuario2
├── lib
├── lib32
├── lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin
├── srv
├── sys
├── tmp
├── usr
└── var

Operações básicas sobre diretórios:

pwd (Print Working Directory)

Mostra o diretório corrente (atual)

Sintaxe:

    pwd


cd (Change directory)

Muda o diretório atual para o novo diretório (como abrir uma pasta no Windows).

Sintaxe:

    cd <novo_diretório>

ls (List)

Lista o conteúdo (nome dos arquivos) de um diretório.

Sintaxe:

    ls <arquivo_ou_diretório>

Opções mais utilizadas:

-l : lista mais informações além do nome, como data criação, permissões, dono, tamanho, etc
-a : lista também os arquivos e diretórios ocultos

Exemplos:

    ls -la /usr/

mkdir (Make directory)

Cria um novo diretório (ou pasta).

Sintaxe:

    mkdir <novo_diretório>

Opções mais utilizadas:

-p : cria também os diretórios (ou pastas) hierarquicamente anteriores, caso nao existam.

Exemplos:

    mkdir dir1
    mkdir -p /dir1/dir2/dir3

rmdir (Remove directory)

Apaga um diretório necessariamente vazio.

Sintaxe:

    rmdir 

Operações básicas sobre arquivos:

cp (Copy)

Copia arquivos para um outro diretório ou criar uma cópia.

Sintaxe:

    cp <arquivo1> <copia_arquivo1>
    cp <arquivo1> <arquivo2> <...> <arquivoN> <diretório_destino>

mv (Move)

Move arquivos para um outro diretório.
Pode ser usado também para renomear arquivos/diretórios

Sintaxe:

    mv <arquivo1> <arquivo1_novo_nome>
    mv <arquivo1> <arquivo2> <...> <arquivoN> <diretório_destino>

rm (Remove)

Remove arquivos.

Sintaxe:

    rm <arquivo1> <arquivo2> <...> <arquivoN>

Opções mais utilizadas:

-i : Pede confirmação antes de remover cada arquivo.

cat (Concatenate)

Concatena arquivos, muito utilizado para mostrar o conteúdo de um arquivo diretamente no terminal.

Sintaxe:

    cat <nome_do_arquivo>

Atividades

Criação e compilação de um programa básico em C/C++, utilizando linha de comando:

  1. Abrir um terminal
  2. Mudar para seu diretório "home"
  3. Criar um diretório "roteiro"
  4. Entrar no diretório criado
  5. Criar um arquivo helloworld.c (Utilizar o editor de textos de sua preferência)
  6. Inserir o seguinte conteúdo no arquivo:
  7. #include <stdio.h>
    int main () {
    	printf ("Hello world!!! \n");
    }
    
  8. Salvar
  9. Mostrar (conferir) o conteúdo do arquivo criado, utilizando o terminal
  10. Compilar o programa
  11. Executar o programa

Referências