12 ms·
NumPy is a really well isolated local maximum, because it gives you just enough of a performance edge in a generally comfortable programming environment (Python
by Athas 6y ago
NumPy is a really well isolated local maximum, because it gives you just enough of a performance edge in a generally comfortable programming environment (Python). Most things that are faster or more flexible than NumPy are much more alien and difficult to work with.
I think NumPy is worth praising for demonstrating that parallel programming does not have to be difficult. Sure, NumPy itself usually does not run in parallel, but its vectorised bulk operations are potentially parallel, yet don't have any of the race conditions, deadlocks, and other complexities we usually associate with "parallel programming". The same style of programming could be implemented in a library or language where those operations really do take advantage of parallel hardware, still without risk of race conditions. NumPy is just one of many programming languages and libraries that have this property (even Fortran array expressions do), but NumPy is demonstrably accessible to data scientists, students, and others who are inexperienced or poorly trained in programming. Hell, if you add NumPy, R, MATLAB, and all the other bulk-parallel programming models used for quick data analysis scripts, it may be that most of the world's code is actually written in a data parallel programming style...
- marmaduke 6y ago> Most things that are faster or more flexible than NumPy are much more alien and difficult to work with. Yes, this is a better statement of the optimal trade off in NumPy. > same style of programming could be implemented in a library or language where those operations really do take advantage of parallel hardware I think this is well vindicated by Theano, Tensorflow and APL before them.