PageSourceSearch

http://mastrave.org/about_mastrave

html mastrave.org collected 2026-10-02 06:03:05 UTC 17,359 bytes, 151 lines download raw bytes

1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6   <title>Mastrave project</title>
7   <link rel="stylesheet" title="mastrave plain style" type="text/css" href="./style.css" />
8   <link rel="icon" href="http://mastrave.org/favicon.ico" />
9   
9<script type="text/javascript" src="/scripts/adapt_style.js"></script>
9
10      
11   <!-- Begin Cookie Consent plugin by Silktide - http://silktide.com/cookieconsent -->
12   
12<script type="text/javascript">
13     window.cookieconsent_options = {"message":"We use cookies to personalise content, to provide social media features and to analyse our traffic. For this, we exploit a few third party cookies on our domain. For more information on how <a href='https://www.openhub.net/p/mastrave'>Open Hub</a> uses data when you use this site, visit this link: <a href='http://blog.openhub.net/privacy/'>http://blog.openhub.net/privacy/</a>. For more information on how Google uses data when you use this site, visit this link: <a href='http://www.google.com/intl/en/policies/privacy/partners/'>http://www.google.com/intl/en/policies/privacy/partners/</a>","dismiss":"Got it!","learnMore":"More info","link":null,"theme":"light-bottom"};
14   </script>
14
15
16   
16<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/1.0.10/cookieconsent.min.js"></script>
16
17   <!-- End Cookie Consent plugin -->
18   
19   <!--[if lt IE 7]>
20   
20<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta3)/IE7.js"></script>
20
21   <![endif]-->
22   <!--[if lt IE 7.]>
23   
23<script type="text/javascript" src="scripts/unitpngfix.js"></script>
23
24   <![endif]-->
25</head>
26<body onload="size_tuning();">
27   <div id="header">
28      <img src="/images/mastrave_logo.png" alt="Mastrave logo" /> Semantic array programming: abstract, portable and scalable data-transformation modelling for the community of computational scientists.
29   </div>
30   <div class="containerVert">
31   <div class="containerInner">
32   <div id="content">
33   <div id="left">
34   <div class="menu"><span><br/></span>
35      <a href="."          >Home</a><span> | </span>
36      <a href="./about_mastrave" class="selected" >About</a><span> | </span>
37      <a href="./download"       >Download</a><span> | </span>
38      <a href="./support"  >Support</a><span> | </span>
39      <a href="./doc"      >Documentation</a><span> | </span>
40      <a href="./research"       >Research</a>
41   </div>
42   <div class="menu" id="index" ><span><br/>You are in the section About<br/> </span>
43      <a href="#Knowledge_and_culture_freedom"                      >
44         Knowledge and culture freedom
45      </a><span> | </span>
46      <a href="#Adding_on_top_portability_scalability"              >
47         Adding on top: portability, scalability
48      </a><span> | </span>
49      <a href="#Freedom_to_review_software-based_scientific_claims" >
50         Freedom to review software-based scientific claims
51      </a><span> | </span>
52      <a href="#Cooperative_scientific_patterns"  >
53         Cooperative scientific patterns
54      </a>
55   </div>
56   <div class="menu" id="related">
57   </div>
58   </div>
59   <div class="body">
60      <h2>About Mastrave: scientific knowledge freedom for robust computational science</h2>
61
62      <pre class="quote"><i>What I cannot create,<br /> I do not understand.</i><br /><br />Richard P. Feynman, <a href="http://archives.caltech.edu/search_catalog.cfm?recsPerPage=1&firstRecToShow=193&search_field=Richard%20Feynman&entry_type=Photo">1988</a></pre>
63
64      
65      <div class="chapter">
66	<p>Mastrave is a library written in order to be as compatible as possible with both <a href="http://www.gnu.org/software/octave/">GNU Octave</a> and <a href="http://www.mathworks.com/products/matlab/">Matlab</a> computing environments.&nbsp;&nbsp;The Mastrave project attempts to allow a more effective, quick interoperability between them by using a reasonably well documented wrap around their main incompatibilities and by promoting a reasonably general idiom based on their common, stable syntagms.&nbsp;&nbsp;It aims to build a solid layer of coherently designed utilities on top of the already valuable abstraction provided by these computing environments &#0151; to minimize the roughness of the learning curve to pass through to think and implement non-trivial scientific contributions.&nbsp;&nbsp;This is done by also promoting the systematic adoption of lightweight semantic constraints to enable concise and reliable implementations of models according to the paradigm of semantic array programming.&nbsp;&nbsp;There are a couple of underlying ideas: library design is language design and vice versa (Bell labs); language notation is definitely a "tool of thought" <a title="Iverson, K. 1980. Notation as a tool of thought. Comm. ACM. 23, 444" href="http://www.dcs.gla.ac.uk/~wpc/grcs/a1979-iverson.pdf">(Iverson)</a>, in the sense that there is a feedback between programming/mathematical notation and the ability to think new scientific insights.&nbsp;&nbsp;And perhaps ethic ones.</p>
67      </div>
68
69
70
71      <div class="chapter">
72      <h4><a href="#index" name="Knowledge_and_culture_freedom" >Knowledge and culture freedom</a></h4>
73
74      <p>Mastrave is <a href="http://www.gnu.org/philosophy/categories.html">free software</a>, which is software <a href="http://www.gnu.org/philosophy/free-sw.html">respecting your freedom</a>.&nbsp;&nbsp;It has been designed having in mind (and empirically experienced) some of the difficulties that arise in attempting to carry out collaborative scientific research by sharing software, data, metadata and most importantly by communicating the underlying patterns of ideas together with practicable ways for critically assessing and collectively enhancing all of them.</p>
75
76      <p>Since errors radiate from the human nature, we should try to ease their discovery and improvement even from a cultural perspective.&nbsp;&nbsp;Is competitiveness the panacea?&nbsp;&nbsp;If not limited, competitiveness applied to scientific knowledge &#0151; the publish or perish mechanism<sup><small><a title="Rhee SY. 2004. Carpe diem. Retooling the publish or perish model into the share and survive model. Plant Physiol. 134:543" href="http://www.plantphysiol.org/cgi/content/full/134/2/543">[1]</a><a title="Neill US. 2008. Publish or perish, but at what cost? J Clin Invest.118:2368" href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2439458/">[2]</a></small></sup> &#0151; may induce the fear of "external" a posteriori falsification and therefore favorite ambiguity and obfuscation (as short-sighted patches to protect from external 
76competitive aggressions) in publishing the relevant information needed to verify scientific claims.&nbsp;&nbsp;This strategy perhaps may be locally effective to survive in a hostile cultural context, however it can easily degrade the maintainability, durability and ultimately compromise the long-term relevance of scientific insights.</p>
77
78      <p>The example of free software community-based success should suggest the global sub-optimality of renouncing to a cooperative effort in mitigating human fallibility.&nbsp;&nbsp;Its goal to spread freedom and cooperation has a <a href="http://www.gnu.org/philosophy/pragmatic.html">pragmatic</a> foundation which can be applied to scientific knowledge by valuing instead of fearing the design of error-aware, non overconfident research while helping to reduce ambiguity and obfuscation.&nbsp;&nbsp;Public, complete availability, eased understandability and improvability of technologies used to accomplish scientific research is a first methodological step.</p>
79
80      <p>As many other free scientific software packages, Mastrave is offered to the community of researchers to promote the development of a free society more concerned about cooperation rather than competitiveness, heading toward knowledge and culture freedom. This also implies the possibility for motivated individuals to freely access and contribute even to the cutting-edge academic culture.&nbsp;&nbsp;This possibility relies on the development of tools and methodologies helping to overcome economic, organizational and institutional barriers (i.e. knowledge oligopolies).&nbsp;&nbsp;This is a long-term goal to which the free software paradigm can and has been able to actively cooperate.</p>
81      </div>
82
83
84
85      <div class="chapter">
86      <h4><a href="#index" name="Adding_on_top_portability_scalability" >Adding on top:<br />portability, scalability</a></h4>
87
88      <p>Mastrave was originally conceived and written by Daniele de Rigo (in about 2005) to perform highly <a href="http://en.wikipedia.org/wiki/Array_programming">vectorized computation</a> with the constraints to use sufficiently portable, scalable architecture and data/metadata manipulation abstraction: requirements common to many otherwise heterogeneous domains related to natural resources modelling &#0151; which is integrating data sets impressively more and more extensive and detailed and models of increasing complexity.&nbsp;&nbsp;This is a trend that is showing just the early signs of its impact on the mode of doing science and therefore requires support designed to last.</p>
89
90<div style="float:right; padding:0px 0px 20px 20px">
90<script type="text/javascript" src="http://www.ohloh.net/p/310021/widgets/project_basic_stats.js"></script>
90</div>
91
92      <p>Portability required to deal with the essential intersection of the GNU Octave and Matlab languages, without forsake efficiency and conciseness provided by the vectorized approach that makes sensible to use such computing environments.&nbsp;&nbsp;The <a href="http://www.gnu.org/software/bash/">Bash shell</a> has been transparently integrated within the Mastrave core of GNU Octave and Matlab compatible functions, to take advantage of some relevant stable and largely portable features of that shell which have been oriented toward the array-programming paradigm.</p>
93
94      <p>Despite powerful GNU Octave <a href="http://www.gnu.org/software/octave/FAQ.html#Octave-Features">language</a> and <a href="http://octave.sourceforge.net/">library</a> extensions and <a href="http://www.mathworks.com/products/product_listing/">Matlab Toolboxes</a> reach great "unilateral" capabilities, until now did not exist a systematic attempt to improve both of them with general purpose, portable and freely available features to make complex modelling manageable and sustainable.&nbsp;&nbsp;The peculiar approach promotes strong modularization and the systematic adoption of lightweight semantic constraints to enable concise and reliable implementations of (sub) models according to the paradigm of <i>semantic array programming</i>.&nbsp;&nbsp;Array semantic constraints may be contextualized in analogy with behavioural subtyping<sup><small><a title="Liskov, B. H. and J. Wing. 1999. Behavioral subtyping using invariants and constraints. 
95Technical Report CMU CS-99-156, School of Computer Science, Carnegie Mellon University" href="http://reports-archive.adm.cs.cmu.edu/anon/anon/1999/abstracts/99-156.html">[3]</a></small></sup> as lightweight array-oriented behavioural contracts.</p>
96
97      <p>Since many other languages which do not properly support array-programming still could be enriched to manifest at least an array-programming flavor, Mastrave is open to experiment with their peculiarities to create a common basis for reasoning and encouraging mutual paradigm contamination (such research forms a set of experimental extensions to the core of Mastrave).</p>
98
99      <p>On the other hand, implementing some interesting features seems to need a choice among divergent objectives like preserving vectorial approach, accomplishing time efficiency or avoiding memory exhaustion for large data sets.&nbsp;&nbsp;The Mastrave project tried to mitigate this dilemma even through an extensive use of sparse matrices and irregular grid indexing.&nbsp;&nbsp;Most of the resulting algorithms are designed to inherently manifest <a href="http://en.wikipedia.org/wiki/Scalable_Parallelism">scalable parallelism</a> and <a href="http://en.wikipedia.org/wiki/Scalable_locality">scalable locality</a>.</p>
100      </div>
101
102
103
104      <div class="chapter">
105      <h4><a href="#index" name="Freedom_to_review_software-based_scientific_claims" >Freedom to review<br />software-based scientific claims</a></h4>
106
107      <p>In scientific environments, free, easy exchange and diffusion of information are the foundations of knowledge building.&nbsp;&nbsp;Independent validations, the possibility to independently review and repeat an experiment or a process having full access to structural information and the freedom of exploring different variants are notoriously the core of the scientific method.</p>
108
109      <p>Scientific oriented software should guarantee the same free, easy exchange and diffusion of information about itself.&nbsp;&nbsp;If the main result of a scientific publication is a new algorithm or a new software package claimed to be useful, it is in the scientific community's interest that the author make available a detailed description and a source code understandable, peer-reviewable and improvable by other scientists.</p>
110
111      <p>The possibility of a deep verification is especially needed for those results that infer theoretical conclusions by using non trivial numerical tasks.&nbsp;&nbsp;A theoretical assumption could be justified a posteriori in the more persuading manner.&nbsp;&nbsp;However it may ignominiously collapse when discovering a subtle bug in the code used to infer it.</p>
112      </div>
113
114
115
116      <div class="chapter">
117      <h4><a href="#index" name="Cooperative_scientific_patterns" >Cooperative scientific patterns</a></h4>
118
119      <p>
119Mastrave encourages conciseness and focusing on the problem instead of on the dusty corners of the array programming language and on portability.&nbsp;&nbsp;Its general purpose abstraction and its pervasive requirement check try to move the code development from individual debug of both the actual problem and the other expensive unspecific tasks to a more specific coding, leaving to the community a collaborative debug and evolution of those general, common tasks. <br />That is the meaning of a free library.</p>
120
121      <p>On the other hand, a new algorithm created for a prosaic application may be brilliantly adapted opening unexpected opportunities in some other field, maybe becoming a general purpose utility. <br />But it needs to be accessible to other people, widely and freely.&nbsp;&nbsp;Such things as closed, black box armor-plated software or software patents might sound extravagant if applied to science.&nbsp;&nbsp;What would have happened if the Fast Fourier Transform had been occulted under a software patent?</p>
122
123      <p>The source code for Mastrave is freely redistributable under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation.&nbsp;&nbsp;As an handy reference for understanding some <a href="http://www.gnu.org/licenses/gpl-faq.html">key aspects</a> of the GNU General Public License, it could be said the GNU GPL guarantees that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it.</p>
124
125      <p>By distributing the complete source code for Mastrave under the terms of the GNU GPL, it is possible to guarantee that you and all other users have the <a href="http://www.fsf.org/licensing/essays/free-sw.html">freedom</a> to redistribute and change both Mastrave and the growing collection of public scie
125ntific works that use Mastrave as a library.&nbsp;&nbsp;Moreover, you have the freedom to analyze in details how each computation is performed and how to improve it.</p>
126
127      <p>Everyone is encouraged to share this software with others under the terms of the GNU General Public License. <br />Mastrave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp;&nbsp;See the GNU General Public License for more details.</p>
128
129      <p>You are also invited to help to improve Mastrave by contributing new ideas for it and by <a href="./support/">reporting problems</a> you may have.&nbsp; Aside gold plating, science remains "the pleasure of finding the thing out, the kick in the discovery, the observation that other people use it".</p>
130      </div>
131
132      <div class="copying">
133         <p>Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Daniele de Rigo</p>
134
135         <p>This page is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nd/3.0/it/deed.en">Creative Commons Attribution-NoDerivs 3.0 Italy License</a>.</p>
136      </div>
137      <hr />
138      <p class="validator">
139         <a href="http://validator.w3.org/check?uri=referer"><img
140            src="http://www.w3.org/Icons/valid-xhtml10-blue"
141            alt="Valid XHTML 1.0 Transitional" height="31" width="88" />
142         </a>
143      </p>
144      
144<script type="text/javascript" src="http://www.ohloh.net/p/310021/widgets/project_users_logo.js"></script>
144
145   </div>
146   </div>
147   </div>
148   </div>
149</body>
150</html>
151

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.