Source: joblib
Version: 1.5.3-1
Severity: normal
X-Debbugs-Cc: [email protected]
User: [email protected]
Usertags: riscv64
Control: forwarded -1 https://github.com/joblib/joblib/issues/1801

joblib is failing test_hash_numpy_performance on the riscv64
architecture:

https://ci.debian.net/data/autopkgtest/unstable/riscv64/j/joblib/71983388/log.gz
https://ci.debian.net/data/autopkgtest/testing/riscv64/j/joblib/71965180/log.gz

The error message is

3746s =================================== FAILURES 
===================================
3746s _________________________ test_hash_numpy_performance 
__________________________
3746s 
3746s     @with_numpy
3746s     @skipif(
3746s         sys.platform == "win32",
3746s         reason="This test is not stable under windows for some reason",
3746s     )
3746s     def test_hash_numpy_performance():
3746s         """Check the performance of hashing numpy arrays:
3746s     
3746s         In [22]: a = np.random.random(1000000)
3746s     
3746s         In [23]: %timeit hashlib.md5(a).hexdigest()
3746s         100 loops, best of 3: 20.7 ms per loop
3746s     
3746s         In [24]: %timeit hashlib.md5(pickle.dumps(a, 
protocol=2)).hexdigest()
3746s         1 loops, best of 3: 73.1 ms per loop
3746s     
3746s         In [25]: %timeit hashlib.md5(cPickle.dumps(a, 
protocol=2)).hexdigest()
3746s         10 loops, best of 3: 53.9 ms per loop
3746s     
3746s         In [26]: %timeit hash(a)
3746s         100 loops, best of 3: 20.8 ms per loop
3746s         """
3746s         rnd = np.random.RandomState(0)
3746s         a = rnd.random_sample(1000000)
3746s     
3746s         def md5_hash(x):
3746s             return hashlib.md5(memoryview(x)).hexdigest()
3746s     
3746s         relative_diff = relative_time(md5_hash, hash, a)
3746s         assert relative_diff < 0.3
3746s     
3746s         # Check that hashing an tuple of 3 arrays takes approximately
3746s         # 3 times as much as hashing one array
3746s         time_hashlib = 3 * time_func(md5_hash, a)
3746s         time_hash = time_func(hash, (a, a, a))
3746s         relative_diff = 0.5 * (abs(time_hash - time_hashlib) / (time_hash 
+ time_hashlib))
3746s >       assert relative_diff < 0.3
3746s E       assert 0.3401559884459161 < 0.3
3746s 
3746s /usr/lib/python3/dist-packages/joblib/test/test_hashing.py:238: 
AssertionError

(the test logs linked above also show some test_parallel errors. I think that 
is a separate issue)

The error in test_hash_numpy_performance is simply missing the timing
criteria by a small margin. riscv64 is evidently running a little
slower than other architectures.

Would it be appropriate to raise the upper limit for the relative_diff
assertion from 0.3 to, say, 0.35 or 0.4?

Issue raised upstream https://github.com/joblib/joblib/issues/1801

-- 
debian-science-maintainers mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-science-maintainers

Reply via email to