knucleotide benchmark improvement for Julia and hashing

Just to announce a net improvement in the knucleotide benchmark described in :

[k-nucleotide (Benchmarks Game)]

The julia#2 solution is found at:
[https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/knucleotide-julia-2.html]

The improvement is at :
https://gitlab.com/jpboth/knucleotide-benchmark

The results shows an improvement by factor 5 by encoding bases and so hashing Int64 instead of String in Dict.

One question is that by defining a hash function doing nothing as described Base.hash documentation I did not get further improvement.

1 Like

That’s a great improvement. Why is Julia’s speed only roughly equiv to python 3, with a more complex implementation? I guess string and dict ops aren’t as optimized as python’s c implementation.

Has a 15x improvement implementation.

5 Likes

Have you already submitted these upstream? Or should we request others to help submit the benchmarks upstream?

2 Likes

The Python 3 and Python 3 # 3 versions are running each sequence in parallel in a quad core machine.

1 Like

I have started with one or two of them.

I submitted the base encoded implementation, still waiting…

If you can help, it will be fine.

Rust (great language too) people use in their implementation use Indexmap (instead of HashMap) which is inspired
by python 3.6 dictionnary, which they say is efficient and preserve insertion order see their doc:

[GitHub - bluss/indexmap: A hash table with consistent order and fast iteration; access items by key or sequence index](GitHub - bluss/indexmap: A hash table with consistent order and fast iteration; access items by key or sequence index]

As in their implementation I tried use a very simple hash for use in Dict (even identity function)
but no success, I did not understand why.

In fact i had difficulty submitting to the benchmark site with the first threaded version and the second paused a problem beccause of the Match package so some help would be welcome.

For knucleotide, Rust people used indexmap which is inspired by python 3.6 dict. Does julia has plans for sthing like that?

Julia is very fine language, thanks