<p>I have this software I had to use for my PhD that was nowhere near as speedy or memory-efficient as I needed with the mountains of data we have. Therefore I rewrote it from scratch, outsourcing a lot of it to C and made it parallel (it was trivially parallelizable up to the number of chromosomes in the organism). Since it is so memory efficient it also allows for computations that were not previously possible.</p>

<p>1) Now, is this thing publishable? I have made no improvements to the results of the algorithm per se it is just improved from a user / comp.sci. perspective.</p>

<p>2) And what are the ethics of this? If it were published, I&#39;d imagine I&#39;d be getting the cites, not the original authors that actually invented the technique/algorithm. I&#39;d feel bad about this part. My changes are mostly in the implementation, great as they may be.</p>

<p>Thoughts on these issues welcome. Same goes for any related issues I did not consider.</p>

<p>Ninja edit: 3) what are the pros and cons of contacting the original authors? I am afraid they&#39;d just claim that I did not do anything original, tell me to publish my code on github and redirect the cites to their original paper.</p>

1. Sounds like you a software paper or application note or whatever you journal of choice calls short papers describing the implementation of some method.
2. Conscientious researchers will cite the "method of [those other people], as implimented in [software] (Brakken Stovner, 2015)". Since you will write your software's documentation you can explicitly ask users to do this. If your software makes the method more applicable you both get more cites.
3. I would contact them -- for one thing, they are the people most likely to be asked to review the software paper anyway. If you contact them you get to explain your motivation and how your software helps them, and you might get feedback from them that helps you software.