5 ms·
Ask HN: matrix multiplication within PHP?
I am implementing a PHP-based web site that includes a simple recommender system. The key numerical calculation is a matrix multiplication. I am worried that doing this in PHP might be painfully slow. Does anyone else have experience doing numerical computations in PHP? I looked at writing my own PHP extension ( http://www.tuxradar.com/practicalphp/20/0/0 ) to implement matrix computations in C, ... but then it struck me someone else must have already encountered and solved this problem.
Any recommendations?
- notaddicted 17y agoIf I were doing this, first I would profile the code. It is hard to know if it is significant or not.
- dxjones 17y agoActually for small enough matrices (as you might imagine) the matrix multiplication in PHP is not horribly slow.
- frisco 17y agoFrom my experience, numerical algorithms at all complicated in PHP tend to lead to major suckage. We use Thrift (http://incubator.apache.org/thrift/ http://incubator.apache.org/thrift/) to send the task to a daemon written in something more reasonable, most often either Python or C depending on required intensity. Works beautifully, few problems. Also, this lets you run the task asynchronously, so you can still return the page in N ms and then load the results on a lag: responsivity means a huge amount to users. Nothing's worse than the script dying from memory limits or timeouts and having the user get nothing (and PHP doesn't do threading).
- dxjones 17y agoThanks, I appreciate the link to Thrift. ... and I agree on the responsivity comment. I guess I'll look into setting up a daemon to my math in the background.
- c00kie 17y agoIf it turns out to really be slow and you want to/have to stick with PHP, you could speed it up with the Strassen algorithm: http://en.wikipedia.org/wiki/Strassen_algorithm http://en.wikipedia.org/wiki/Strassen_algorithm