[ 
https://issues.apache.org/jira/browse/HADOOP-6166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tsz Wo (Nicholas), SZE updated HADOOP-6166:
-------------------------------------------

    Attachment: c6166_20090811.patch

c6166_20090811.patch: added Crc32_8_8e and deleted some old classes.

> We probably want to have Todd's concurrency test from HADOOP-5318 run to make 
> sure the larger lookup table doesn't slow things down under concurrency.
Todd, could you help running the test?

> We might also want to try the old four at a time code for 4 <= len < 8.
What do you mean exactly?

> We should also confirm the results on one of the other systems we tested in 
> the past. I won't be able to do that for a couple days, but it should be easy 
> then.
Hope you could find some time to do it soon.

> How many other variants did you try? Intel's C code does some strange things 
> to group CRC's by 3. ...
Many others.  You know, there are many combinations.  I also tried different 
table sizes as shown before.

Included Crc32_8_8e below.  Crc32_8_8d still seems the best choice.


- java.version = 1.6.0_15
java.runtime.name = Java(TM) SE Runtime Environment
java.runtime.version = 1.6.0_15-b03
java.vm.version = 14.1-b02
java.vm.vendor = Sun Microsystems Inc.
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.version = 1.0
java.specification.version = 1.6
os.arch = amd64
os.name = Linux
os.version = 2.6.9-55.ELsmp

Performance Table (The unit is MB/sec)
|| Num Bytes ||    CRC32 || PureJavaCrc32 || Crc32_8_8 || Crc32_8_8b || 
Crc32_8_8c || Crc32_8_8d || Crc32_8_8e || Crc32_16_16 || Crc32_16_16b || 
Crc32_16_16c || Crc32_16_16d ||
|          1 |     7.554 |         71.591 |     79.205 |     103.936 |      
80.965 |      79.185 |      80.812 |       84.215 |        80.733 |        
80.732 |        84.860 |
|          2 |    14.768 |        104.753 |    110.837 |     110.771 |     
110.798 |     115.222 |     110.820 |      119.278 |       110.844 |       
110.836 |       119.207 |
|          4 |    27.150 |        177.142 |    119.587 |     114.780 |     
120.051 |     128.626 |     117.005 |      125.412 |       115.439 |       
120.409 |       125.486 |
|          8 |    49.921 |        193.631 |    239.096 |     238.506 |     
228.868 |     248.667 |     244.446 |      217.270 |       209.170 |       
209.149 |       215.505 |
|         16 |    83.886 |        259.453 |    261.683 |     254.016 |     
240.835 |     258.250 |     247.261 |      267.441 |       279.439 |       
276.864 |       271.520 |
|         32 |   128.960 |        312.202 |    323.233 |     319.924 |     
301.175 |     322.962 |     320.275 |      295.428 |       302.402 |       
294.960 |       295.872 |
|         64 |   177.529 |        349.882 |    362.037 |     364.918 |     
347.768 |     365.013 |     358.567 |      326.303 |       352.837 |       
345.517 |       347.880 |
|        128 |   217.577 |        370.920 |    387.254 |     386.534 |     
372.472 |     391.180 |     386.159 |      339.850 |       383.044 |       
373.716 |       381.058 |
|        256 |   245.685 |        382.041 |    403.693 |     401.793 |     
390.270 |     406.037 |     402.777 |      347.134 |       400.956 |       
388.941 |       399.331 |
|        512 |   263.143 |        385.666 |    411.380 |     407.443 |     
396.506 |     413.556 |     411.803 |      350.844 |       411.293 |       
397.335 |       409.011 |
|       1024 |   271.941 |        390.055 |    406.949 |     406.830 |     
399.163 |     415.963 |     424.095 |      352.875 |       417.516 |       
401.168 |       414.229 |
|       2048 |   276.881 |        392.684 |    412.759 |     411.123 |     
402.143 |     418.730 |     424.565 |      353.111 |       418.855 |       
402.870 |       415.696 |
|       4096 |   279.541 |        393.738 |    418.844 |     413.271 |     
403.645 |     419.106 |     424.975 |      353.582 |       421.574 |       
403.834 |       417.058 |
|       8192 |   280.308 |        392.859 |    417.096 |     412.115 |     
403.015 |     417.989 |     422.254 |      352.011 |       419.664 |       
402.378 |       415.385 |
|      16384 |   280.420 |        393.006 |    415.629 |     409.566 |     
403.498 |     418.107 |     420.676 |      350.423 |       418.062 |       
401.090 |       412.468 |
|      32768 |   280.488 |        392.172 |    410.737 |     411.129 |     
403.873 |     417.434 |     413.839 |      349.526 |       418.633 |       
401.736 |       412.341 |
|      65536 |   281.809 |        393.565 |    411.490 |     412.331 |     
405.347 |     419.190 |     414.866 |      350.781 |       418.473 |       
401.637 |       412.297 |
|     131072 |   281.994 |        393.634 |    411.533 |     412.281 |     
405.387 |     419.620 |     414.802 |      350.869 |       418.350 |       
401.634 |       412.346 |
|     262144 |   282.106 |        393.732 |    411.339 |     411.562 |     
404.172 |     416.299 |     413.072 |      349.416 |       416.190 |       
400.395 |       410.680 |
|     524288 |   281.194 |        392.195 |    409.839 |     410.759 |     
403.954 |     417.950 |     413.178 |      350.104 |       418.596 |       
401.175 |       412.137 |
|    1048576 |   282.160 |        393.700 |    411.316 |     412.339 |     
405.165 |     419.694 |     414.608 |      351.029 |       416.836 |       
401.927 |       412.122 |
|    2097152 |   281.584 |        393.264 |    410.322 |     405.048 |     
402.028 |     414.893 |     406.574 |      328.270 |       410.558 |       
393.239 |       403.796 |
|    4194304 |   274.062 |        385.751 |    409.093 |     408.604 |     
402.332 |     419.176 |     412.265 |      350.039 |       415.385 |       
400.332 |       410.738 |
|    8388608 |   279.870 |        385.793 |    406.788 |     407.685 |     
400.830 |     415.537 |     409.612 |      344.396 |       412.684 |       
397.534 |       406.201 |
|   16777216 |   279.585 |        389.025 |    405.902 |     407.222 |     
400.414 |     414.680 |     409.184 |      346.930 |       413.039 |       
396.057 |       406.953 |

- java.version = 1.6.0_14
java.runtime.name = Java(TM) SE Runtime Environment
java.runtime.version = 1.6.0_14-b08
java.vm.version = 14.0-b16
java.vm.vendor = Sun Microsystems Inc.
java.vm.name = Java HotSpot(TM) Server VM
java.vm.specification.version = 1.0
java.specification.version = 1.6
os.arch = x86
os.name = Windows XP
os.version = 5.1

Performance Table (The unit is MB/sec)
|| Num Bytes ||    CRC32 || PureJavaCrc32 || Crc32_8_8 || Crc32_8_8b || 
Crc32_8_8c || Crc32_8_8d || Crc32_8_8e || Crc32_16_16 || Crc32_16_16b || 
Crc32_16_16c || Crc32_16_16d ||
|          1 |     4.669 |         62.483 |     67.995 |      64.360 |      
64.700 |      64.430 |      51.386 |       61.391 |        62.175 |        
68.944 |        62.271 |
|          2 |     9.959 |         79.342 |     88.566 |      79.881 |      
91.326 |      88.695 |      81.976 |       89.846 |        83.984 |        
91.166 |        84.918 |
|          4 |    19.448 |        136.996 |    119.941 |     129.939 |     
120.992 |     119.898 |     132.349 |      118.682 |       116.076 |       
122.505 |       114.090 |
|          8 |    36.518 |        168.433 |    240.284 |     219.896 |     
213.865 |     212.471 |     209.605 |      115.325 |       135.040 |       
145.009 |       139.316 |
|         16 |    66.157 |        233.146 |    272.227 |     258.220 |     
250.948 |     245.771 |     253.216 |      313.174 |       321.156 |       
289.904 |       285.301 |
|         32 |   111.982 |        283.081 |    327.881 |     326.083 |     
311.988 |     300.416 |     299.799 |      331.685 |       338.723 |       
316.987 |       319.500 |
|         64 |   169.448 |        315.802 |    364.829 |     368.059 |     
348.219 |     340.445 |     323.045 |      360.273 |       357.086 |       
352.497 |       359.832 |
|        128 |   227.468 |        335.743 |    384.770 |     394.813 |     
373.775 |     368.234 |     338.247 |      379.686 |       363.607 |       
372.900 |       382.183 |
|        256 |   274.901 |        348.319 |    395.674 |     410.081 |     
386.566 |     388.908 |     345.215 |      385.142 |       368.920 |       
383.446 |       392.874 |
|        512 |   307.317 |        353.626 |    401.379 |     422.212 |     
392.543 |     399.756 |     348.747 |      391.548 |       372.486 |       
389.674 |       400.035 |
|       1024 |   325.610 |        358.707 |    408.000 |     424.190 |     
390.858 |     386.952 |     349.863 |      392.606 |       373.485 |       
393.192 |       403.376 |
|       2048 |   337.261 |        361.642 |    410.563 |     429.318 |     
395.794 |     388.887 |     351.070 |      392.865 |       373.458 |       
394.564 |       404.084 |
|       4096 |   346.026 |        363.077 |    408.908 |     432.169 |     
402.087 |     394.633 |     351.254 |      393.764 |       372.779 |       
395.751 |       405.531 |
|       8192 |   348.807 |        363.550 |    407.264 |     431.891 |     
409.774 |     400.138 |     350.242 |      393.582 |       373.939 |       
394.498 |       405.981 |
|      16384 |   350.030 |        361.773 |    407.574 |     433.393 |     
413.786 |     399.135 |     352.191 |      391.875 |       371.887 |       
396.563 |       404.991 |
|      32768 |   350.552 |        360.131 |    408.495 |     428.463 |     
413.372 |     406.904 |     352.049 |      390.723 |       371.160 |       
393.841 |       403.526 |
|      65536 |   350.624 |        359.343 |    407.846 |     427.477 |     
411.844 |     407.847 |     351.866 |      388.578 |       371.861 |       
394.314 |       403.752 |
|     131072 |   351.383 |        358.687 |    407.854 |     426.513 |     
411.453 |     407.655 |     352.480 |      388.961 |       372.343 |       
394.181 |       401.394 |
|     262144 |   351.508 |        359.392 |    406.755 |     427.817 |     
413.534 |     407.467 |     352.457 |      389.811 |       370.843 |       
396.034 |       404.051 |
|     524288 |   350.264 |        358.659 |    407.698 |     427.750 |     
411.986 |     408.091 |     351.678 |      390.126 |       371.458 |       
395.884 |       404.374 |
|    1048576 |   351.092 |        358.452 |    406.796 |     426.634 |     
413.797 |     408.162 |     351.430 |      389.716 |       372.157 |       
394.826 |       403.300 |
|    2097152 |   349.731 |        357.048 |    407.095 |     426.922 |     
411.427 |     405.970 |     351.830 |      388.308 |       371.514 |       
394.656 |       401.170 |
|    4194304 |   345.948 |        354.513 |    401.117 |     423.269 |     
408.442 |     401.112 |     348.512 |      384.834 |       365.403 |       
390.539 |       399.911 |
|    8388608 |   343.162 |        350.602 |    400.009 |     415.757 |     
403.662 |     399.569 |     344.909 |      382.301 |       365.704 |       
386.523 |       397.156 |
|   16777216 |   343.989 |        351.502 |    400.036 |     417.893 |     
403.717 |     400.511 |     345.505 |      381.932 |       363.491 |       
385.044 |       393.422 |

> Improve PureJavaCrc32
> ---------------------
>
>                 Key: HADOOP-6166
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6166
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: util
>            Reporter: Tsz Wo (Nicholas), SZE
>            Assignee: Tsz Wo (Nicholas), SZE
>         Attachments: c6166_20090722.patch, c6166_20090722_benchmark_32VM.txt, 
> c6166_20090722_benchmark_64VM.txt, c6166_20090727.patch, 
> c6166_20090728.patch, c6166_20090810.patch, c6166_20090811.patch
>
>
> Got some ideas to improve CRC32 calculation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to