Sunday, April 15, 2018

Sarah Chang, a true prodigy in the era when there were no social media

I have always been fascinated, as many of you have been, by the unbelievable qualities demonstrated by true child prodigy.  One such person I have been especially fascinated by is the internationally acclaimed violinist Sarah Chang (home page@sarahchang).

There was no internet in 1986 when Sarah Chang auditioned at the tender age of 5 for Juillard playing Bruch's violin concerto.  However fortunately we can have a glimpse of what an unbelievable talent she had at this age thanks to a video of her playing around that age.  The sound and video quality is not great but it is such a fantastic historic artifact.

When she had just turned 9 (I know lots say 8 but she turned 9 on December 10, 1989), Zubin Mehta then conductor of the New York Philharmonic called her up on Thursday January 11, 1990 to ask her if she would audition the next day.  After the audition he called her back to ask her if she could play the next day to replace then Concert master Glenn Dicterow, but that there was just one little problem; there was no rehearsal time available so she would have to play without rehearsing first.  She accepted and this is how Sarah debuted.

Here is a copy of the program that comes from the New York Philharmonic archives.

This is the text from the program (with handwritten annotations in courrier italic font):

Educational Concert 
Wednexday Morning, January 10, 1990 at 11:00 11,464th and ll,467th Concerts 
Saturday Afternoon, janunry 13, 1990, at 2:00 
Zubin Mehta, Conductor and Host/Commentator 
BEETHOVEN "Leonore" Overture No. 3, C major, Opus 72A* 
BIZET-WAXMAN  "Carmen" Fantasy for Violin and Orchestra 
Concerto for Trumpet and Orchestra, 
E-flat major 
I Allegro 
II Andante 
lll Finale 

RAVEL "Bolero" 
* Recorded by the New York Philharmonic and currently available 
Zubin Mehta's appearance is endowed by MR. AND MRS. LAURANCE S. ROCKEFELLER and IBM CORPORATION. 
Major support for this and other Educational Activities is provided bv endowments from the 
The programs of the Philharmonic are made possible in part with public funds from the New York State Council on the Arts and by a grant from the National Endowment for the Arts in Washington, D.C., a Federal agency. 
Steinway Piano 
Deutsche Grammophon, London, New World, RCA, Sony Classical, Teldec 

Monday, June 20, 2016

Great yet old Java article

This article is still very good even 8 years after its publications: Effective Java

Monday, March 7, 2016

Running an I/O benchmark using IOMETER

The following document describes the methodology used at MFJ Associates for running a disk I/O benchmark.  This document assumes that the IOMETER software has been downloaded from IOMETER runs on Microsoft Windows as well as various flavors of Unix and Linux(referred to as *nix in this blog). It is made up of two components:
  1. iometer.exe a GUI program that only runs on Windows (which means you have to have at least 1 Windows desktop or server to run the GUI part)
  2. dynamo.exe or dynamo (on *nix) called the manager.
In order to run a benchmark the Windows computer running iometer.exe must have TCP connectivity with the computer(s) where the benchmark will be performed.  Both must be able to connect to one another.

How to run a benchmark

Here is a high level view of running a benchmark. A detailed explanation will follow.
  1. You need to start the iometer.exe program on the Windows computer.  This will start the dynamo.exe program on that same computer in order to be able to perform benchmarks on that Windows computer.
  2. Start the dynamo program on all computers (Windows or *nix) where you want to run a benchmark.  If you need to run benchmark on two Linux servers la and lb and 1 windows server wa then you must start the dynamo program on the la, lb and wa servers.
  3. When you have configured all the parameters for running the benchmark simply click on the start icon ()
  4. When the benchmark run time is reached (or you click the stop icon if the duration is specified as 0) then the result of the benchmark will be written into a csv file.
That's it.  Now for the details read on.

Start IOMETER.exe

After starting iometer.exe you will get the following window: In the topology window you should see under All Managers an icon with a plus sign corresponding to the Windows computer where you are running the iometer.exe.  This indicates that iometer.exe started the dynamo.exe on the Windows computer and that it has connected to the iometer GUI.  If you click on the plus sign you will see a list of workers, one for each CPU on the computer running the dynamo program (in this case the same Windows computer running the iometer.exe).  This means that there are up to so many workers potentially available to perform tests. The number of worker that will be utilized depends on the number of disk targets that are selected.  All disk targets will be distributed among the workers equally.  If there are 4 workers:
  • 1 disk, only 1 of 4 worker will be used
  • 2 disks, 2 of 4 workers will be used
  • 4 disks, all 4 workers will be used
  • 8 disks, all 4 workers will be used each using two disks

Start dynamo

Logon to each computer where you want to run a benchmark and start the dynamo program as follow:   dynamo -i iometer -m manager where iometer is the hostname or IP address of the computer running iometer that this instance of dynamo will try to connect to manager is the hostname or IP address of the computer running dynamo. This hostname or IP address will be used by the computer running the iometer program. Once you start a dynamo, you will see it appear in the topology list of iometer as ubuntu-precise in the screen shot below:

Configure the parameters

In order to run a benchmark, you must configure all the managers that will be used in the iometer topology window.  To do this you must click each manager in the topology and perform the following steps:
  1. click the Disk Targets tab and select the disks to use in the benchmark. Control click will select multiple disks or to select no disk, control click all selected disks to deselect them.  A disk is selected when it has a red x in the check box as in
  2. Select a maximum disk size of 2000 sectors
  3. Click the Access Specifications tab and click the global access specification called Default.  Click the Edit Copy button.
  4. In the Edit access Specification window, change the name to Default 4k
  5. Change the Transfer Request Size to 4 Kilobytes then click the OK button
  6. Back in the Access Specifications with the new Default 4k selected at the bottom of the list click the <<Add button. Click the "4 KiB; 100% Read; 0% random" access specification and add it by clicking the <<Add button. Do the same for the "256KiB; 100% Read; 0% random" access specification. You should end up with the following in the Assigned Access Specifications window:
  7. Click the Results Display tab.  Change the Update Frequency to 5 seconds.
  8. Click the Test Setup tab and type a test description.  Then select a 1 minute run time
Remember to perform each of those steps for each connected dynamo or manager.  Note that steps 3-5 only need to be done the first time.

Start the benchmark

Once all managers have been configured, you are ready to run the benchmark.  Please note that all workers on all managers will be running their first access specification at the same time, followed by their second access specification and so on.  If they are all hitting the same disk they will each interfere with one another.  On a production system this can provide comparable measures as all benchmark are equally affected by the other activities.  If you want to run them separately, just make sure that only 1 disk target is selected at a time. Since you have configured three access specification and a run time of 1 minutes, this means that the complete benchmark will take 3 minutes. When ready, click the start green flag. A dialog box will appear allowing you to specify the filename of the CSV result file.  Make sure you store it in a location and using a name that will reflect what the benchmark was about.  When you click the save button the benchmark will start.  Make sure you are on the Results Display tab to see the progress. This is what it will look like:

End of benchmark

When the benchmark has completed you can import it into Excel and select the top left cell of the first result (with the text 'Target Type) and shift click the bottom right cell of the last result. On the Excel Home tab in the Styles group select the Format as Table button  and click the Table Style Medium 2 and click OK on the following window making sure the My table has headers is selected as in:

This will create an Excel table that you can use to filter.  I usually filter the target types of ALL, MANAGER and DISK to gain an understanding.  You may want to remove the filters to look at detailed information. See the iometer User's Guide for a description of the metrics.  Please note that binary metrics(MiBps) versus decimal metrics(MBps) are defined in the table in the following web page

Other benchmarking tools

  1. fio benchmark for *nix and Windows
  2. diskspd from Microsoft that runs only on Windows