{"id":2876,"date":"2010-09-15T10:42:19","date_gmt":"2010-09-15T09:42:19","guid":{"rendered":"http:\/\/www.walkingrandomly.com\/?p=2876"},"modified":"2011-02-14T18:47:35","modified_gmt":"2011-02-14T17:47:35","slug":"which-matlab-toolboxes-should-be-merged","status":"publish","type":"post","link":"https:\/\/walkingrandomly.com\/?p=2876","title":{"rendered":"Which MATLAB toolboxes should be merged?"},"content":{"rendered":"<p>A very welcome change in MATLAB 2010b is the merging of the splines and curve-fitting toolboxes to form one super-toolbox that does both splines AND curve-fitting in a product that&#8217;s simply called <a href=\"http:\/\/www.mathworks.com\/products\/curvefitting\/\">The Curve Fitting Toolbox<\/a>.\u00a0 The separate curve-fitting and splines toolboxes were always a bugbear for me and many of my equivalents in other UK universities so now we have one less thing to moan about. Thanks to the HUGE number of MATLAB toolboxes, however, we&#8217;ll still have plenty of things to moan about at our quarterly academic maths and stats meetings.<\/p>\n<p>I took a trawl through some of Mathworks standard toolboxes to see what other toolboxes I thought should be merged together or done away with completely.\u00a0 Here are a couple of pleas to The Mathworks that would make MY life (and the lives of the community I support) a whole lot easier.<\/p>\n<h3>The Parallel Toolbox for MATLAB<\/h3>\n<p>My laptop has a dual core processor so, unless I am lucky enough to be <a href=\"https:\/\/www.walkingrandomly.com\/?p=1894\">using functions that are implicitly parallel<\/a>, MATLAB will only make use of half of my available processing power.  It gets worse when I get into work since it will only use a quarter of the power of my quad-core desktop and as for those lucky fellows who have just bought themselves dual hex-core MONSTERS (12 cores total)&#8230;.well, MATLAB won&#8217;t exactly be using them to their full capacity will it?  Less than 10% in fact, unless they shell out extra for the parallel computing toolbox (PCT).<\/p>\n<p>The vast majority of computers sold today have more than one processing core and yet the vast majority of MATLAB installations out there only use one of them (unless you use <a href=\"https:\/\/www.walkingrandomly.com\/?p=1894\">these functions<\/a>).  MATLAB&#8217;s competitors such as <a href=\"http:\/\/reference.wolfram.com\/mathematica\/guide\/ParallelComputing.html\">Mathematica<\/a>, <a href=\"https:\/\/www.walkingrandomly.com\/?p=1837\">Maple<\/a> and <a href=\"http:\/\/zone.ni.com\/devzone\/cda\/tut\/p\/id\/6421\">Labview<\/a> all have explicit multi-core support built in as standard.  Maybe it&#8217;s time that MATLAB did that too!<\/p>\n<p><strong>What I&#8217;d like Mathworks to do:<\/strong>Merge the <a href=\"http:\/\/www.mathworks.com\/products\/parallel-computing\/\">Parallel Computing Toolbox<\/a> with core MATLAB.<\/p>\n<h3>Optimisation and Global Optimisation<\/h3>\n<p>You&#8217;ve got a function and you want to know when it gets as big or as small as it can be so you turn to optimisation routines.  MATLAB has some basic optimisation functions built into its core (<a href=\"http:\/\/www.mathworks.com\/help\/techdoc\/ref\/fminsearch.html\">fminsearch<\/a> for example) but many people find that they need the extra power and versatility offered by the functions in either the <a href=\"http:\/\/www.mathworks.com\/products\/optimization\/\">optimisation toolbox<\/a> or the <a href=\"http:\/\/www.mathworks.com\/products\/global-optimization\/index.html\">global optimisation toolbox<\/a>.<\/p>\n<p>People who have never used optimisation routines before sometimes ask me what the difference between these toolboxes is.  When I was first faced with this question I discussed the different classes of algorithms involved and used phrases like &#8216;genetic algorithms&#8217;, &#8216;multistart&#8217;, &#8216;simulated annealing&#8217;, &#8216;global and local minima&#8217; and so on.  These days I start off somewhat more simply:<\/p>\n<p><strong>Me: <\/strong>&#8220;The optimisation toolbox finds <strong>A<\/strong> minimum near to your starting guess.  It may or may not be <strong>THE<\/strong> minimum of your function.  The global optimisation toolbox, on the other hand, attempts to find <strong>THE<\/strong> minimum.&#8221;<\/p>\n<p><strong>User:<\/strong> &#8220;Well, I want <strong>THE<\/strong> minimum obviously.  So, I guess I&#8217;ll take the global optimisation toolbox please.&#8221;<\/p>\n<p><strong>Me: THE<\/strong> minimum costs more money than just <strong>A<\/strong> minimum.  Twice as much in fact, since you need to buy the standard optimisation toolbox <strong>AND<\/strong> the global optimisation toolbox if you want <strong>THE<\/strong> minimum.<\/p>\n<p><strong>User:<\/strong> <em>&lt;Deep in thought while they consider how far their grant is going to stretch&gt;<\/em><\/p>\n<p><strong>Me:<\/strong> The standard optimisation toolbox won&#8217;t cost you anything here since we have a set of licenses for it on our network license server.<\/p>\n<p><strong>User:<\/strong> OK OK.\u00a0 I&#8217;ll make do with that.\u00a0 I suppose I could just make LOTS of starting guesses and run the standard optimisation toolbox routines in parallel on my 12-core monster?\u00a0 Then I can take the best result and there will be a better chance that it will be THE minimum, right?<\/p>\n<p><strong>Me:<\/strong> That&#8217;ll need the Parallel computing toolbox&#8230;which costs extra!<\/p>\n<p><strong>What I&#8217;d like Mathworks to do:<\/strong> Merge the standard and global optimisation toolboxes.<\/p>\n<p>So, that&#8217;s a couple of things that I would like.\u00a0 Do you agree with them?\u00a0 Are there other toolbox merges you&#8217;d like to see?\u00a0 Comments welcome.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A very welcome change in MATLAB 2010b is the merging of the splines and curve-fitting toolboxes to form one super-toolbox that does both splines AND curve-fitting in a product that&#8217;s simply called The Curve Fitting Toolbox.\u00a0 The separate curve-fitting and splines toolboxes were always a bugbear for me and many of my equivalents in other [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,11],"tags":[],"class_list":["post-2876","post","type-post","status-publish","format-standard","hentry","category-math-software","category-matlab"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3swhs-Ko","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/posts\/2876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2876"}],"version-history":[{"count":6,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/posts\/2876\/revisions"}],"predecessor-version":[{"id":3214,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=\/wp\/v2\/posts\/2876\/revisions\/3214"}],"wp:attachment":[{"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/walkingrandomly.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}