aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojtek Kosior <kwojtus@protonmail.com>2019-04-26 13:40:11 +0200
committerWojtek Kosior <kwojtus@protonmail.com>2019-04-26 13:40:11 +0200
commit61ca17deb8d6311aa867e0e6dee8b305ca0c385d (patch)
treefe9f0303576b360c79c4174d459eb1432df46764
parenta6dc359694421f32b9245497ef5e8f7de625b98b (diff)
downloadfortran-assignment1-61ca17deb8d6311aa867e0e6dee8b305ca0c385d.tar.gz
fortran-assignment1-61ca17deb8d6311aa867e0e6dee8b305ca0c385d.zip
expand README, use english only
-rw-r--r--README.md60
1 files changed, 50 insertions, 10 deletions
diff --git a/README.md b/README.md
index b53e02c..e808bb0 100644
--- a/README.md
+++ b/README.md
@@ -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).