[
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.