En aquest tema, aprendrem sobre les tècniques de depuració i perfilat en Fortran. La depuració és el procés d'identificar i corregir errors en el codi, mentre que el perfilat és l'anàlisi del rendiment del codi per identificar colls d'ampolla i optimitzar-lo.
- Introducció a la Depuració
1.1. Tipus d'Errors
- Errors de Sintaxi: Errors en la forma en què el codi està escrit.
- Errors d'Execució: Errors que ocorren durant l'execució del programa.
- Errors Lògics: Errors en la lògica del programa que produeixen resultats incorrectes.
1.2. Eines de Depuració
- GDB (GNU Debugger): Una eina de depuració popular que suporta Fortran.
- Valgrind: Una eina per detectar errors de memòria.
1.3. Depuració amb GDB
Per utilitzar GDB, primer hem de compilar el nostre codi amb l'opció -g
per incloure informació de depuració.
1.4. Comandes Bàsiques de GDB
- break: Estableix un punt de ruptura.
(gdb) break main
- run: Executa el programa.
(gdb) run
- next: Executa la següent línia de codi.
(gdb) next
- print: Mostra el valor d'una variable.
(gdb) print variable
Exemple de Depuració
program debug_example implicit none integer :: i, sum sum = 0 do i = 1, 10 sum = sum + i end do print *, 'Sum is ', sum end program debug_example
Compilació i depuració:
- Introducció al Perfilat
2.1. Eines de Perfilat
- gprof: Una eina de perfilat que funciona amb programes compilats amb
gfortran
.
2.2. Compilació per a Perfilat
Per utilitzar gprof
, hem de compilar el nostre codi amb les opcions -pg
.
2.3. Executar el Programa i Generar el Perfil
Executem el programa per generar un fitxer de perfil (gmon.out
).
2.4. Analitzar el Perfil
Utilitzem gprof
per analitzar el fitxer de perfil.
Exemple de Perfilat
program profile_example implicit none integer :: i, j, sum sum = 0 do i = 1, 1000 do j = 1, 1000 sum = sum + i * j end do end do print *, 'Sum is ', sum end program profile_example
Compilació i perfilat:
gfortran -pg -o profile_example profile_example.f90 ./profile_example gprof ./profile_example gmon.out > analysis.txt
- Exercicis Pràctics
Exercici 1: Depuració
- Escriu un programa Fortran que calculi la suma dels primers 100 nombres naturals.
- Introdueix un error lògic en el codi.
- Utilitza GDB per identificar i corregir l'error.
Exercici 2: Perfilat
- Escriu un programa Fortran que calculi el producte de dos matrius grans.
- Compila el programa amb les opcions necessàries per a perfilat.
- Utilitza
gprof
per identificar les parts del codi que consumeixen més temps.
- Resum
En aquesta secció, hem après sobre les tècniques de depuració i perfilat en Fortran. Hem vist com utilitzar GDB per depurar el codi i com utilitzar gprof
per analitzar el rendiment del nostre programa. Aquestes eines són essencials per desenvolupar codi eficient i lliure d'errors.
Curs de Programació en Fortran
Mòdul 1: Introducció a Fortran
- Introducció a Fortran
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Escrivint el teu Primer Programa en Fortran
Mòdul 2: Conceptes Bàsics
- Variables i Tipus de Dades
- Operadors i Expressions
- Entrada i Sortida
- Estructures de Control: Sentències If
- Estructures de Control: Bucles
Mòdul 3: Arrays i Cadenes
Mòdul 4: Procediments i Funcions
Mòdul 5: Estructures de Dades Avançades
Mòdul 6: Gestió de Fitxers
Mòdul 7: Temes Avançats
Mòdul 8: Millors Pràctiques i Optimització
- Tècniques d'Optimització de Codi
- Depuració i Perfilat
- Escrivint Codi Mantenible
- Estàndards i Portabilitat de Fortran