Help / Release / J 5.04 / f/ .g Improved

From J Wiki
Jump to navigation Jump to search


>> << Pri JfC LJ Phr Dic Voc !: Rel NuVoc wd Help Release



f/ .g Improved

initial writing: 2004-09-01
last updated: 2005-03-18


The following inner products are now faster (and also leaner for the Boolean inner products).

+/ .*      Boolean, integer, floating point, complex
+./ .*.   +./ .*  Boolean; faster and leaner
~:/ .*.   ~:/ .*  Boolean; faster and leaner

The improvement is minor with small arrays but is substantial with larger arrays, and is larger for CPUs with a large on-die cache. The following benchmarks demonstrate the improvement.


   m  p  n  Type     J5.04  J5.03  Ratio 
 
+./ .*. 800 100 800 Boolean 0.01229828 0.06245972  5.08
   800 200 800 Boolean 0.02436215 0.12242737  5.03
   800 400 800 Boolean 0.04842964 0.48997266  10.12
   800 800 800 Boolean 0.10693234 1.19284602  11.16
 
+/ .* 800 100 800 Boolean 0.01522230 0.04825642 3.17
   800 200 800 Boolean 0.02714897 0.09307329 3.43
   800 400 800 Boolean 0.05281650 0.18381550 3.48
   800 800 800 Boolean 0.11380058 0.36863960 3.24
 
+/ .* 800 100 800 integer 0.18923574 0.16371892 0.87
   800 200 800 integer 0.38702915 0.42442516 1.10
   800 400 800 integer 0.75412938 0.86987551 1.15
   800 800 800 integer 1.49535773 4.33534356 2.90
 
+/ .* 800 100 800 real 0.22889839  0.74948352  3.27
   800 200 800 real 0.44844771  1.53543945  3.42
   800 400 800 real 0.89166200  4.73978968  5.32
   800 800 800 real 1.77981982  10.93269003  6.14
 
+/ .* 800 100 800 complex 0.65384512  0.98544341 1.51
   800 200 800 complex 1.31073778  2.74356425 2.09
   800 400 800 complex 2.61397222  5.95522645 2.28
   800 800 800 complex 5.21419328 12.33558427 2.37




>> << Pri JfC LJ Phr Dic Voc !: Rel NuVoc wd Help Release