Utilizando o CACAU

 

Após cadastrar seu projeto, seu usuário e receber seu login e senha, faça login no CACAU com o comando "ssh -p 2222 O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. " substituindo "user" pelo seu login. Se estiver usando Microsoft Windows use o programa Mobaxterm disponível em http://mobaxterm.mobatek.net/. Para gerenciar seus arquivos e pastas de maneira gráfica use o programa Filezilla disponível em https://filezilla-project.org/, inserindo "acesso.nbcgib.uesc.br" no campo "host" e "2222" no campo "porta".

Para compilar código-fonte com os compiladores da Intel:

Digite "source /opt/intel/Compiler/11.1/072/bin/iccvars.sh intel64" para código em C ou C++ e use os compiladores "icc" ou "icpc".
Digite "source /opt/intel/Compiler/11.1/072/bin/ifortvars.sh intel64" para código em Fortran e use o compilador "ifort".
Mais Informações em http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor.
ATENÇÃO: Carregando as variáveis de ambiente acima, são carregados também os caminhos da MKL (Math Kernel Library) da Intel.

Caminhos da MKL:

/opt/intel/Compiler/11.1/072/mkl/                      (diretório base)
/opt/intel/Compiler/11.1/072/mkl/lib/em64t/    (bibliotecas)
/opt/intel/Compiler/11.1/072/mkl/include/        (includes)

Para compilar código-fonte com MPI:

Digite "source /opt/intel/impi/4.0.3.008/bin64/mpivars.sh" para Intel MPI.
Digite "source /home_nfs/local/mpi/openmpi-1.8.5/mpivars.sh" para OpenMPI.
Digite "source /opt/mpi/bullxmpi/1.2.4.1/bin/mpivars.sh" para Bull MPI.

Para utilizar Infiniband ou Gigabit Ethernet:

O uso de Infiniband é padrão para OpenMPI e Bull MPI. Para Intel MPI digite "export I_MPI_FABRICS=shm:dapl".
Para Gigabit Ethernet digite "export OMPI_MCA_btl=tcp,self" para OpenMPI e Bull MPI. Para Intel MPI digite "export I_MPI_FABRICS=tcp".

Para compilar código-fonte CUDA:

Digite "export PATH=/opt/cuda/7.0/bin:$PATH" e compile com o comando "nvcc".
Para executar o código compilado digite "export LD_LIBRARY_PATH=/opt/cuda/7.0/lib:$LD_LIBRARY_PATH" (32 bits) ou "export LD_LIBRARY_PATH=/opt/cuda/7.0/lib64:$LD_LIBRARY_PATH" (64 bits).
O diretório dos exemplos é "/opt/cuda/7.0/samples".

Utilizando o gerenciador de jobs SLURM:

Para que seu programa seja enfileirado para execução no CACAU, devemos criar um arquivo de texto com terminação "*.srm" com instruções para executar o programa, por exemplo "testempi.srm".

Para enfileirar digite "sbatch testempi.srm".
Para listar filas e respectivos nós digite "sinfo".
Para listar jobs enfileirados digite "squeue" ou "sjstat".
Para cancelar um job digite "scancel <número_do_job>".

Script de exemplo (testempi.srm):

#!/bin/bash
#SBATCH -J testempi                             # nome do job
#SBATCH --partition short                      # fila onde o job será enfileirado, pode ser lowpriority, veryshort, short, long ou gpu
#SBATCH --nodes 1                                # quantidade de nós, 1 a 3 na fila gpu e 1 a 20 nas outras filas
#SBATCH --ntasks 8                               # quantidade de tarefas, fila gpu têm 12 cpus por nó e as outras filas 8 cpus por nó
#SBATCH --cpus-per-task 1                  # quantidade de cpus por tarefa
#SBATCH --time 3:00:00                        # tempo limite, se omitido usará o tempo total da fila
#SBATCH --nodelist=nova[201-203]    # se necessário, seleciona os nós desejados
#SBATCH --exclusive                              # se necessário, ativa uso exclusivo dos nós

#descomente para usar Intel MPI
#source /opt/intel/impi/4.0.3.008/bin64/mpivars.sh
#export I_MPI_PMI_LIBRARY=/usr/lib64/libpmi.so
#export I_MPI_FABRICS=shm:dapl

#descomente para usar OpenMPI. O comando "srun" abaixo deve ser seguido do parametro "--resv-ports"
#source /home_nfs/local/mpi/openmpi-1.8.5/mpivars.sh

#descomente para usar Bull MPI. O comando "srun" abaixo deve ser seguido do parametro "--resv-ports"
#source /opt/mpi/bullxmpi/1.2.4.1/bin/mpivars.sh

#descomente para usar InfiniBand com Intel MPI (OpenMPI e Bull MPI utilizam InfiniBand por padrão)
#export I_MPI_FABRICS=shm:dapl

#descomente para usar Gigabit Ethernet com Intel MPI
#export I_MPI_FABRICS=tcp

#descomente para usar Gigabit Ethernet com OpenMPI e Bull MPI
#export OMPI_MCA_btl=tcp,self

#descomente para usar CUDA 32 bits ou 64 bits
#export LD_LIBRARY_PATH=/opt/cuda/7.0/lib
#export LD_LIBRARY_PATH=/opt/cuda/7.0/lib64

cd $SLURM_SUBMIT_DIR         # muda para diretório de onde o job foi enviado
mkdir $SLURM_JOBID               # cria diretório do job atual
cp testempi $SLURM_JOBID    # se necessário, copia executáveis e arquivos de entrada para diretório do job atual
cd $SLURM_JOBID                     # muda para diretório do job atual

echo "--------------------------------------"
ldd testempi
echo "--------------------------------------"    # se necessário, exibe as bibliotecas usadas pelo programa que o job executa
ulimit -s unlimited                                  # ajusta limites para execução
ulimit -a                                                    # exibe limites para execução

date                       # exibe data de início
srun ./testempi    # use o srun para utilizar o número de tarefas criadas em ntasks e o número de nós criados em nodes, ou substitua pelo comando de seu programa
date                       # exibe data de término

 

Em destaque.

Estações de trabalho para programação em CUDA e OpenCL:

Quantidade: 08 (oito)
Placa-mãe: GA-78LMT-S2PProcessador: AMD FX(tm)-4100 Quad-Core Processor
Memória: 4Gb
Placa de vídeo: Nvidia Geforce GT430
S.O.: OpenSUSE 12.3, x86_64



Informações adicionais (em inglês):

Processor flags:
flags :                             fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold

 

Number of platforms:                2
  Platform Profile:                 FULL_PROFILE
  Platform Version:                 OpenCL 1.1 CUDA 4.2.1
  Platform Name:                    NVIDIA CUDA
  Platform Vendor:                  NVIDIA Corporation
  Platform Extensions:              cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll
  Platform Profile:                 FULL_PROFILE
  Platform Version:                 OpenCL 1.2 AMD-APP (1214.3)
  Platform Name:                    AMD Accelerated Parallel Processing
  Platform Vendor:                  Advanced Micro Devices, Inc.
  Platform Extensions:              cl_khr_icd cl_amd_event_callback cl_amd_offline_devices

 

Platform Name:                      NVIDIA CUDA
Number of devices:                  1
  Device Type:                      CL_DEVICE_TYPE_GPU
  Device ID:                        4318
  Max compute units:                2
  Max work items dimensions:        3
    Max work items[0]:              1024
    Max work items[1]:              1024
    Max work items[2]:              64
  Max work group size:              1024
  Preferred vector width char:      1
  Preferred vector width short:     1
  Preferred vector width int:       1
  Preferred vector width long:      1
  Preferred vector width float:     1
  Preferred vector width double:    1
  Max clock frequency:              1400Mhz
  Address bits:                     32
  Max memory allocation:            268320768
  Image support:                    Yes
  Max number of images read arguments:         128
  Max number of images write arguments:        8
  Max image 2D width:                          32768
  Max image 2D height:                         32768
  Max image 3D width:                          2048
  Max image 3D height:                         2048
  Max image 3D depth:                          2048
  Max samplers within kernel:                  16
  Max size of kernel argument:                 4352
  Alignment (bits) of base address:            4096
  Minimum alignment (bytes) for any datatype:  128
  Single precision floating point capability
    Denorms:                                   Yes
    Quiet NaNs:                                Yes
    Round to nearest even:                     Yes
    Round to zero:                             Yes
    Round to +ve and infinity:                 Yes
    IEEE754-2008 fused multiply-add:           Yes
  Cache type:                                  Read/Write
  Cache line size:                             128
  Cache size:                                  32768
  Global memory size:                          1073283072
  Constant buffer size:                        65536
  Max number of constant args:                 9
  Local memory type:                           Scratchpad
  Local memory size:                           49152
  Error correction support:                    0
  Profiling timer resolution:                  1000
  Device endianess:                            Little
  Available:                                   Yes
  Compiler available:                          Yes
  Execution capabilities:                
    Execute OpenCL kernels:                    Yes
    Execute native function:                   No
  Queue properties:                
    Out-of-Order:                              Yes
    Profiling :                                Yes
  Platform ID:                                 0x1a2a040
  Name:                                        GeForce GT 430
  Vendor:                                      NVIDIA Corporation
  Driver version:                              310.40
  Profile:                                     FULL_PROFILE
  Version:                                     OpenCL 1.1 CUDA
  Extensions:                                  cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll  cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64


Platform Name:                                 AMD Accelerated Parallel Processing
Number of devices:                             1
  Device Type:                                 CL_DEVICE_TYPE_CPU
  Device ID:                                   4098
  Max compute units:                           4
  Max work items dimensions:                   3
    Max work items[0]:                         1024
    Max work items[1]:                         1024
    Max work items[2]:                         1024
  Max work group size:                         1024
  Preferred vector width char:                 16
  Preferred vector width short:                8
  Preferred vector width int:                  4
  Preferred vector width long:                 2
  Preferred vector width float:                8
  Preferred vector width double:               4
  Max clock frequency:                         1400Mhz
  Address bits:                                64
  Max memory allocation:                       2147483648
  Image support:                               Yes
  Max number of images read arguments:         128
  Max number of images write arguments:        8
  Max image 2D width:                          8192
  Max image 2D height:                         8192
  Max image 3D width:                          2048
  Max image 3D height:                         2048
  Max image 3D depth:                          2048
  Max samplers within kernel:                  16
  Max size of kernel argument:                 4096
  Alignment (bits) of base address:            1024
  Minimum alignment (bytes) for any datatype:  128
  Single precision floating point capability
    Denorms:                                   Yes
    Quiet NaNs:                                Yes
    Round to nearest even:                     Yes
    Round to zero:                             Yes
    Round to +ve and infinity:                 Yes
    IEEE754-2008 fused multiply-add:           Yes
  Cache type:                                  Read/Write
  Cache line size:                             64
  Cache size:                                  16384
  Global memory size:                          4133638144
  Constant buffer size:                        65536
  Max number of constant args:                 8
  Local memory type:                           Global
  Local memory size:                           32768
  Error correction support:                    0
  Profiling timer resolution:                  1
  Device endianess:                            Little
  Available:                                   Yes
  Compiler available:                          Yes
  Execution capabilities:                
    Execute OpenCL kernels:                    Yes
    Execute native function:                   Yes
  Queue properties:                
    Out-of-Order:                              No
    Profiling :                                Yes
  Platform ID:                                 0x7f25956f6fc0
  Name:                                        AMD FX(tm)-4100 Quad-Core Processor
  Vendor:                                      AuthenticAMD
  Driver version:                              1214.3 (sse2,avx,fma4)
  Profile:                                     FULL_PROFILE
  Version:                                     OpenCL 1.2 AMD-APP (1214.3)
  Extensions:                                  cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt



 

 

Abertura de contas

A utilização dos recursos computacionais do NBCGIB está vinculada à abertura de uma conta de usuário. As contas de usuários estarão associadas a projetos de pesquisa previamente cadastrados. Abaixo estão disponíveis os formulários que devem ser preenchidos, assinados e entregues no NBCGIB (pessoalmente ou via correio - endereço no final desta página)

 

Obs.: O formulário pode ser enviado ao email do NBCGIB ( O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. ). Para tanto, precisa estar assinado (assinatura digital ou documento escaneado).

 

Instruções

No Formulário:

  • O campo Nome do Grupo do Projeto será utilizado para criar um grupo de usuários ao qual pertencerão todos os usuário vinculados a este projeto.
  • O campo Duração estimada do projeto poderá ser deixado em branco no caso em que não se tenha uma estimativa bem definida da duração do projeto. Neste caso será estipulada uma duração de 12 meses, período após o qual o responsável pelo projeto deverá efetuar a renovação do mesmo, se for necessário.  
  •  O campo Sugestão para nome da Conta será utilizado para criar o login da conta do usuários no servidor.
  • Os campos Recursos Necessários serão utilizados para determinar quais dos serviços oferecidos pelo CACAU serão utilizados pelo projeto ou pelo usuário, caso seja interesse dos mesmos.
    • Cluster HPC: utilizar as capacidades do Cluster de Alto Desempenho para desenvolver, compilar e/ou executar programas, sejam estes seriais ou paralelos. Para este recurso, é necessário formulário específico - CACAU
    • Servidor Web:  utilizar o Servidor Web do CACAU para hospedar um site do grupo de pesquisa, de um projeto específico, de algum evento ou aplicação web.
    • Servidor DB: utilizar o Servidor de banco de dados para armazenar, gerar ou gerenciar algum banco de dados vinculado a projeto de pesquisa ou aplicação específica.
    • Servidor E-mail: criar uma conta de E-Mail para usuário, grupo de pesquisa ou evento relacionado ao grupo.
    • VPN: acessar de fora da UESC, de forma segura, os recursos computacionais do CACAU através da Rede Virtual Privada.
    • Proxy: acessar de fora da UESC, de forma segura, ao Portal Capes.

Termo de Compromisso

Os usuários do NBCGIB se comprometem a:

  • não fornecer sua senha (pessoal e intransferível);
  • não se afastar do objetivo inicial do projeto ao qual está vinculado;
  • respeitar as diretrizes de uso da rede do NBCGIB;
  • incluir em qualquer trabalho ou publicação, oriunda deste projeto, a frase: "Pesquisa desenvolvida com o auxílio do Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas - NBCGIB, com recursos FINEP/MCT, CNPQ e FAPESB e da Universidade Estadual de Santa Cruz - UESC” ou o equivalente no idioma da publicação.

O NBCGIB se reserva ao direito de a qualquer momento, a seu exclusivo critério, mudar as suas diretrizes sem aviso prévio.

Para melhores informações:

NBCGIB - Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas

Campus Soane Nazaré de Andrade, km 16, Rodovia Ilhéus-Itabuna

CEP 45662-900 - Ilhéus-Bahia

Tel: (73) 3680-5212

 

Ou pelo Formulário de Contato

 

Liguagem de Programação I

Período: 2012.1

Horários:
Turma 1:

Segundas Feiras, Quartas Feiras e Sextas Feiras,

10:50 - 12:30,

Sala 3114

Turma 2:

Segundas Feiras,

09:10 - 10:50,

Sala 3119.

Quartas Feiras e Sextas Feiras,

09:10 - 10:50,

Sala 3114

Professor: Esbel Tomás Valero Orellana

Tópicos:

Prova Final: 25/07

Slides - Aulas

Listas de Exercícios

Recursos

Bibliografia

  • C – Como Programar. Deitel e Deitel, LTC Editora, 1999.

  • C completo e total. Schildt, H.  Pearson/Makron books, 2006

  • PROGRAMANDO EM C, V.1: FUNDAMENTOS. OLIVEIRA, U. D., CIENCIA MODERNA, 2008.

  • TREINAMENTO EM LINGUAGEM C. MIZRAHI, V. V.,  PRENTICE HALL BRASIL, 2008.

«  Novembro 2019  »
DoSeTeQuQuSe
12
3456789
10111213141516
17181920212223
24252627282930