From 61ca17deb8d6311aa867e0e6dee8b305ca0c385d Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 26 Apr 2019 13:40:11 +0200 Subject: expand README, use english only --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file 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). -- cgit v1.2.3