diff options
author | Wojtek Kosior <kwojtus@protonmail.com> | 2019-04-26 13:40:11 +0200 |
---|---|---|
committer | Wojtek Kosior <kwojtus@protonmail.com> | 2019-04-26 13:40:11 +0200 |
commit | 61ca17deb8d6311aa867e0e6dee8b305ca0c385d (patch) | |
tree | fe9f0303576b360c79c4174d459eb1432df46764 | |
parent | a6dc359694421f32b9245497ef5e8f7de625b98b (diff) | |
download | fortran-assignment1-61ca17deb8d6311aa867e0e6dee8b305ca0c385d.tar.gz fortran-assignment1-61ca17deb8d6311aa867e0e6dee8b305ca0c385d.zip |
expand README, use english only
-rw-r--r-- | README.md | 60 |
1 files changed, 50 insertions, 10 deletions
@@ -1,11 +1,12 @@ -#Rozwiązanie zadania - mnożenie macierzy w fortranie# -Niniejsze repozytorium zawiera realizację [zadania pierwszego](link do pdf'a) kursu jęzka fortran na AGH w Krakowie +#Task solution - matrix multiplication in fortran# +This repository contains the realization of the [first task](http://home.agh.edu.pl/~macwozni/fort/zadanie1.pdf) of the fortran programming language course at AGH in Cracov. -##Struktura repozytorium## +##The directory structure## CMakeLists.txt README.md - build/ + make_results.sh + template.gnuplot src/ blockmath.F90 testing.F90 @@ -33,12 +34,51 @@ Niniejsze repozytorium zawiera realizację [zadania pierwszego](link do pdf'a) k bett_16 block_16 bett2_16 + wykres4.pdf + wykres8.pdf + wykres16.pdf -####CmakeLists.txt#### -This file contains CMake definitions for building fortran sources. It does not, however, define the actions of running the program, generating results, nor plotting +###CmakeLists.txt### +This file contains CMake definitions for building fortran sources. It does not, however, define the actions of running the program, generating results, nor plotting. -####src/#### -This directory contains the fortran sources of the project, namely modules sources `*math.F90` and main program source `main.F90` +###make_results.sh### +This script runs built program under different options and writes measured multiplication times in `res/{naiv,bett,dot,mat,bett2,block}_{4,8,16}` while also running gnuplot to generate their corresponding plots into `res/wykres{4,8,16}.pdf`. -####res/#### -This directory contains text results of matrix multiplication time measuring (files without extension) +###template.gnuplot### +It's the gnuplot script for generating plots from text files in `res`. In this script `[kind]` has to be replaced with actual number (for example with the help of `sed`, see `make_results.sh` for how it's done). + +###src/### +This directory contains the fortran sources of the project, namely modules sources `*math.F90` and main program source `main.F90`. + +###res/### +This directory contains text results of matrix multiplication time measuring (files without extension) and their corresponding plots (pdf files). + +##Building## +As a prerequisite, CMake, make and a fortran compiler, either gfortran or ifort, are required (didn't want to support proprietary compiler :c but had to). + +`make_results.sh` assumes an out-of-source build in `build/` has been performed. + + $ mkdir build + $ cd build + $ cmake ../ + $ make mull + +The CMake configuration provided allows one to specify one of twosets of compiler flags. The default is RELEASE and it can be changed to DEBUG using + + $ cmake .. -DCMAKE_BUILD_TYPE=DEBUG + +##Running## +The executable is `mull`. + + $ ./mull + Usage: mull KIND IMPLEMENTATION + where KIND is one of: 4, 8, 16 + IMPLEMENTATION is one of: naiv, bett, dot, mat, bett2, block + +When ran with proper arguments, it prints matrix sizes and multiplication times in columns. + +Text files and plots in `res/` can be regenerated by issuing + + $ ./make_results.sh + +from within the main project directory (may take up to several tens of minutes). |