Welcome to the Fedora Scientific 29 Guide

These pages aim to help you learn more about using the software shipped with Fedora Scientific. These documentation should be only considered applicable for Fedora 29 and may not work exactly as mentioned on other Fedora releases. Please file a issue if you find any error.

Contents

What is Fedora Scientific?

Fedora Scientific is part of Fedora labs. It is targeted towards new and existing Linux users using Linux for their scientific computing. Such users would include students and researchers whose work involves numerical experiments, preparing their results, writing research reports and presenting them. Fedora Scientific aims to be useful in all phases of the research pipeline.

The advantage of using Fedora Scientific is that you do not have to install the packages which you always need every time you install Linux. They are already available for you when you install Fedora Scientific.

What is included?

Fedora Scientific includes the most popular numerical tools (GNU Octave, Sage, Scilab, and others) and libraries and programming support for for C/C++, Java, Python (including IPython) and R. Plotting tools such as gnuplot and tools for creating graphics such as Inkscape are included. You can also create LaTex documents, including creating presentations using Beamer.

Installation

The Scientific lab comes in two variants. A Live Image with KDE and Vagrant box. Please refer to the Download page.

Here is a walk through video explaining a very basic installation of Fedora Scientific in a virtual machine.

Todo

Installation video tutorial

Customisation

If you are not a fan of KDE, you can install the desktop environment of your choice using Fedora’s package manager. For example, to install the GNOME desktop environment, use the command, sudo yum group install Gnome desktop.

Tools, editors and IDEs

Fedora Scientific includes the popular numerical computing tools - GNU Octave and Scilab. Besides these, Maxima - a computer algebra system is also included. To write programs, you need a powerful text editor. Vim and Emacs are both included. If you are a programmer who prefers to use an Integrated Development Environment (IDE), Eclipse IDE is included as well.

GNU Octave

GNU Octave is a high level programming language and numerical computing environment. It is mostly compatible with MATLAB. Hence, if you are looking for a MATLAB alternative on Fedora Scientific, GNU Octave may be the place to start.

The GNU Octave manual is here with a PDF version also available. Other ways to get help are mentioned here.

Scilab

Note

scilab is not included in Fedora 28, you can however install it using: dnf -y install scilab.

Scilab combines a high level programming language and a numerical computing environment. If you have prior experience with MATLAB and are looking for something similar, Scilab is worth looking into.

Links to the official documentation and tutorials are available here. Ways to engage with the Scilab community are mentioned here.

Maxima

Maxima is a computer algebra system. The official documentation for Maxima is here and the mailing lists are listed here.

Emacs and Vim

Emacs and Vim are both powerful editors supporting most programming languages known today. Besides, they also have support for LaTex editing which you can use instead of dedicated LaTex editors such as Kile. If you are already familiar with one of these editors, the official documentation are good places to refer to learn more and are linked from the official project page.

Eclipse

Perhaps, most popular with Java programmers, the Eclipse IDE also supports C/C++ and Python programming (among others). On Fedora Scientific, you can use Eclipse for C, C++, Java and Python projects.

The official documentaion for Eclipse 4.3 is here.

C programming

Fedora Scientific includes the gcc C compiler. The manual for the GNU C library is available here.

GNU Scientific Library

The GNU Scientific Library is a C/C++ library providing a extensive collection of mathematical routines.

A mailing list for seeking help is also available.

Parallel and Distributed Computing

openmpi

openmpi is an open source implementation of the Message Passing Standard (MPI-2). The official documentation is available here and some of the ways of getting help is listed on this page.

pvm (parallel virtual machine)

pvm is a set of tools and libraries enabling parallel computing across an interconnected heterogeneous network of computing units. This book is a good starting point.

libgomp

libgomp is the GNU implementation of the Open MP API for shared memory programming.

C++ programming

Fedora Scientific includes the g++ C++ compiler. The manual for the GNU C++ library is available here.

Blitz++

The Blitz++ is a C++ library for array manipulation. An user guide for the library is available for download on the project’s website. Links to the mailing lists are also available here.

There are a number of other resources listed.

Armadillo

Armadillo is a C++ linear algebra library. The documentation for the project is available here. Answers to some frequently asked questions are also available.

R programming

Fedora Scientific includes R - a software environment for statistical computing. The R manuals are a good place to get started as well as extensive documentaion on R. The R-help is a mailing list which can be used to seek help on R.

rkward - a GUI for R is also installed.

Note

rkward is not included in Fedora 28, you can however install it using: dnf -y install rkward.

R development in Jupyter

Using IRkernel, you can run your R code in Jupyter notebooks. First, you will have to install the czmq-devel package using dnf -y install czmq-devel from the terminal.

Then start the R interactive shell from the terminal ($R) and as per the install instructions, do:

> install.packages(c('rzmq','repr','IRkernel','IRdisplay'),
              repos = c('http://irkernel.github.io/', getOption('repos')),
              type = 'source')

Once that completes, run the following:

> IRkernel::installspec()

Now, start the Jupyter notebook server using ipython3 notebook and you will be able to select the R kernel.

Java programming

Fedora Scientific includes the Apache Commons Mathematics Library. This library includes a number of mathematical and statistics utilities.

The user guide is a good place to get started if you are not familiar with it. Mailing lists for the project are listed here.

Julia programming

Fedora Scientific includes the Julia language. The official documentation is a good place to start looking into Julia. There are a number of other resources listed on the learning page.

The community page lists the various mailing lists.

Julia development in Jupyter

Using IJulia.jl, you can program in Julia in Jupyter notebooks. Here is how you can install IJulia:

Once that completes, run the following:

$ julia
> using IJulia
> notebook()

In addition, if you are curious, you can look into using Juno for Julia programming.

LaTeX

Fedora Scientific includes the complete toolchain needed for creating documents using LaTeX. Besides using text editors such as Emacs or Vim, users also have the option of using Kile - an integrated LaTeX Environment. The LaTeX package, beamer is also included to assist in creating presentations with LaTeX.

Utilities such as hevea and bibtex2html are also included.

Graphics, Plotting and Data Visualization

gnuplot

gnuplot is a command line driven utility for creating 2-D and 3-D graphs. The official documentation is available here. The brief tutorial here may also be a good starting point.

The user mailing list is linked from the Help page.

XFig

Besides creating drawings in XFig, one way I find it really useful is in using it to process exported graphs from gnuplot. Plots created in gnuplot can be exported in a format called the fig format (among others). Once exported in this format, you can then open it in XFig, make any changes to it (including using LaTeX formulas) and export it to one of the supported formats.

Inkscape

Inkscape is a feature rich vector image creation tool. There are a number of tutorials for getting started and various mailing lists for seeking help and discussions are listed here.

dia

Dia can be used to create diagrams and supports exporting to a number of other formats. A mailing list is available here.

GGobi

GGobi is a visualization program for exploring high-dimensional data. Various resources for learning GGobi are listed here.

A mailing list is available for seeking help.

Mayavi

Mayavi is a software for 3-D data visualization. Documentation for getting started with Mayavi is available here.

Others

The GNU image manipulation program and g3data are other software available.

Version control

Fedora Scientific includes several popular version control software.

git

Pro Git by Scott Chacon is a freely available online book that should get you started with Git (in case you are not familiar with it) and also be a handy reference after you are familiar with the basics.

Other documentation including the man pages are listed here.

The Git user mailing list is an active community where you can ask your queries if you get stuck.

Mercurial

Learning Mercurial in Workflows is a good starting point if you are not familiar with Mercurial. The page also links to a tutorial and other resources for learning more about it.

The user mailing list is here.

Subversion

Rapid SVN - a GUI front-end for the Subversion version control system is included. The documentation here should be a good starting point in case you are not familiar with it.

A user forum is available for seeking help.

Miscellaneous

Fedora Scientific includes the following miscellaneous software.

Bibliography

BibTool is installed to help you in manipulating BibTex data bases. To learn more about its features, please visit the project’s homepage.

Document arrangement

pdfshuffler - a tool for rearranging and modifying PDF files is available.

Screenshot taking software

shutter a screenshot taking tool is installed for taking screenshots if KDE’s KSnapshot is not meeting one’s needs.

Terminal Multiplexers

For power users doing most of their work from a terminal, the terminal multiplexers, tmux and screen are installed.

IRC Client

While working with open source projects, IRC is a useful mechanism for becoming part of a project’s community, seeking and providing help. hexchat is installed for communicating via IRC channels.

rlwrap

rlwrap is a readline wrapper and runs any command by “wrapping GNU readline” around it. It proves useful when working with interactive command line tools which does not use readline for an enhanced command line working experience.

Source, Contributing and Licensing

This guide is open source and uses the CC-BY-SA license. Contributing is easy. Use the edit link on the top right of the pages and send me a pull request. I look forward to your contributions!

Indices and tables