-
Notifications
You must be signed in to change notification settings - Fork 0
License
davidcock/channel_tools
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Sparse Channel Matrix Tools =========================== Copyright 2013, NICTA. See COPYRIGHT for license details. This package contains both a sparse matrix library, and a number of tools for analysing large, sparse channel matrices and building them from experimental data supplied as a list of (integal) "input output" pairs. As far as possible, the tools operate as filters on streams of samples - transforming stdin to stdout. They can thus be straightforwardly daisy-chained, and sample streams (which are generally very large) can be compressed with external tools (xz,bzip2,gzip,...). Be aware that both matrix generation and error simulation are memory-intensive. A 0.25% dense 250000 x 65536 matrix occupies ~300MB in sparse format, but building it may easily require 8GB of RAM. Likewise, simulation builds a large number of such matrices, and is parallelised. To achieve maximum speedup, you would need 8GB of RAM per core (a medium-sized simulation can easily to 100GB, and consume 1000h of processor time). Basic tools: * analyse Reads a sample stream from stdin and prints histogram statistics. * analyse_mat Calculates various statistics for a channel matrix, relevant for optimisation. * capacity Computes the Shannon capacity of the given channel matrix - the greatest mutual information over all input distributions. * channel_hist Calculates and prints a 2D histogram of the sample stream on stdin. * channel_matrix Constructs a channel matrix from the sample stream given on stdin. * confidence_interval.py Uses the output of sample_error to estimate the confidence interval for the given observed capacity. * drop_samples Drop a fixed number of samples for every input modulation. * extract_plot Generate a visualisation of the given channel matrix, suitable for gnuplot `with image'. * filter_samples Drop malformed and out-of-range samples. * row_average Average the rows in the given matrix * sample_error Run a Monte Carlo simulation for the given matrix, to approximate the distribution of capacities expected if the matrix actually had a given small bandwidth. This is used to generate confidence intervals and establish the statistical precision of the experimental results. * sim_max.py Return the largest output of sample_error. * smooth Smooth the given vector by averaging samples [n-r,n+r]. * stride Modify the internal layout of the matrix so that n columns can be processed in parallel. May improve vectorization performance. * summarise Present a concise summary of the given sample stream. Tools for managing an experimental corpus: * experiment_stats.py Present summary statistics for a corpus of experimental results, stored under the given path. * find_capacities.sh Calculate the capacity of every matrix in the given corpus. * gen_matrices.py Generate all channel matrices for the corpus. * make_matrix.sh Generate a single matrix. * make_plots.sh Generate all plots. * partition.py Run Monte Carlo error simulations for matrices. Test and benchmarking tools: * mult Measure sparse multiplication speed. * mvec Measure underlying arithmetic speed. * speed_sparse Measure sparse matrix operation speed. * test_hist Test various aspects of the block-sparse histogram library. * test_sparse Test the sparse matrix library. Building -------- On Linux, just type * make and to run the test suite, * make test Other platforms are as yet untested, but the package should build with only minor modifications on any UNIX-like platform. Packaged Software ----------------- This package includes the dSFMT pseudorandom number generator of Saito and Matsumoto. For licensing details, see dSFMT-src-2.2.1/LICENSE.txt.
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published