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_exampleCompilació 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_exampleCompilació 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
gprofper 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
