libnano / primer3-py

Simple oligo analysis and primer design
https://libnano.github.io/primer3-py
GNU General Public License v2.0
157 stars 43 forks source link

thread-safe `thal.c` code and `nogil` updates for `ThermoAnalysis` #94

Closed grinner closed 1 year ago

grinner commented 1 year ago

New thal.c code lives in thalflex.c and thalflex.h and thalflexsignatures.h.

Commented out code in thalflex.c used MacOS <malloc/malloc.h> malloc_size() function to investigate allocations of triloopEnthalpies/triloopEntropies and tetraloopEnthalpies/tetraloopEntropies

test_threadsafe.py add and nogil instituted for calls to thal() and seqtm() added run_design and calc_heterodimer threadsafe tests

Presently thermoanalysis.pyx/pxd have been update to use thalflex.c and nogil cython instruction resulting in a 20X speed improvement on MacOS development machine (2X from thalflex.c and 10X from nogil)

ThermoAnalysis class no longer needs to be a Singleton so this was removed as a parent class

version bump to 1.2.0a1

CHANGES update for 1.2.0 updates