I am Dr. Akar from Koya University. I want to ask about parallel programming in matlab
Related
I have an Agent-Based model written in NetLogo. Now I want to take it to next level and evolve my agents as Genetic Programming population. I want a way to incorporate the genetic programming part into my NetLogo model, either through an interface or write it in NetLogo itself if that's possible. Anybody has any insights into this?
Thank you
I have seen codes and examples of user based collaborative filter that executes knn before calculates similarities, and others that executes only after, it means, executes knn on similarities matrix.
So my doubt is when calculates KNN algorithm, on data matrix before calculates similarities, or on similarities matrix?
References:
https://github.com/mhahsler/recommenderlab/blob/master/R/RECOM_UBCF.R
Dietmar Jannach, Markus Zanker, Alexander Felfernig, Gerhard
Friedrich - Recommender Systems An Introduction - Cambridge University
Press (2010)
A CUDA-enabled Parallel Implementation of Collaborative Filtering
Zhongya Wanga, Ying Liua, and Pengshan Ma
Up to now I have used RapidMiner for some data/text mining tasks, but with an increasing amount of data there are huge performance issues. AFAIK the RapidMiner Parallel Processing Extensions is only available for the enterprise version - unfortunately I am limited to the community version.
Now I want to transfer the tasks to a high performance cluster by using MATLAB (academic license). I did not find any information that the Parallel Computation Toolbox supports e.g. SVM or KNN.
Does MATLAB or any additional libraries support the paralleliization of data mining algorithms?
Most data mining and machine learning functionality for MATLAB is contained within Statistics Toolbox (in recent versions, that's called Statistics and Machine Learning Toolbox). To enable parallelization, you'll also need Parallel Computing Toolbox, and to enable that parallelization to be carried out on an HPC cluster, you'll need to install MATLAB Distributed Computing Server on the cluster.
There are lots of ways that you might want to parallelize data mining tasks - for example, you might want to parallelize an individual learning task, or parallelize a cross-validation, or parallelize several learning tasks across multiple datasets.
The first is possible for some, but not all of the data mining algorithms in Statistics Toolbox. MathWorks are gradually introducing that piece by piece. For example, kmeans is parallelized, and there is a parallelized algorithm for bagged decision trees, but I believe SVM learning is currently not parallelized. You'll need to look into the documentation for Statistics Toolbox to find out if the algorithms you require are on the list.
The second two are possible. Functionality in Statistics Toolbox for cross-validation (and bootstrapping, jack-knifing) is parallelized, as are some feature selection algorithms. And in order to parallelize running several jobs over multiple datasets, you can use functionality from Parallel Computing Toolbox (such as a parfor or parallel for loop) to iterate over them.
In addition, the upcoming R2015b release of MATLAB (out in September) will include GPU-enabled statistics functionality, providing additional speedups.
This question already has answers here:
Specification for a Functional Reactive Programming language
(3 answers)
Closed 7 years ago.
I am trying to understand functional reactive programming for a long time (since I have participated in the Reactive Coursera course a year ago) but I still don't understand the essence of it.
Here I am going to describe my current understanding about functional programming vs. functional reactive programming and I would like know if I am on the right path towards understanding the essence of functional reactive programming or not, if not then why not ?
I want to know if it is a good analogy to think about functional reactive programming as programming with differential equations.
In other words, specifying how the system evolves in terms of equations (declaratively).
In functional programming computations are described using static, time-independent equations, in contrast in functional reactive programming everything becomes time dependent. So instead of describing a simple function, one describes a function that depends on time explicitly.
For example, in traditional functional programming one is programming using pure functions without side effects. Just like mathematical functions (maps from one set to another set).
For example f(x)=x^2.
However, in functional reactive programming, to my understanding, and I am not sure if I understand it correctly so please correct me if I am not, one describes computations in terms of time dependent discrete differential equations.
For example, if I want to describe the user interacting with a ball on the screen, which can move along one dimensions (x) then I write the following equations:
x(t)/dt=v(t)
v(t)/dt=a(t)
a(t)=F(t)/m
where F(t) is the force exerted by the user onto the ball.
If I understand correctly, the essence of functional reactive programming is to go from static functions to time dependent functions and express the computations/algorithms in terms of (discrete) differential equations.
Is this understanding of mine correct ? Is this really the essence of functional reactive programming, or is there more to it ?
See my answer here (containing the two essential founding properties of FRP) and follow the links you find.
I am writing programs that are based on robots navigating through mazes (would involve stochastic programming).
Since it will involve heavy matrix handling (plus point for MATLAB) and simulating a robot (plus point for Prolog), I am in a dilemma between the choice of MATLAB and Prolog.
Note: I do have MATLAB at my work environment, hence cost is not an issue.
As mentioned previously, I am not sure if you are looking for comparisons between MATLAB and Python or MATLAB and Prolog. I can speak to the former, at least: MATLAB provides fast linear algebraic computation and a great IDE... and that's about it. Python will cost you much fewer headaches (and dollars), and you can manage "heavy matrix handling" nearly as easily if you tack on Numpy in particular, or SciPy in general.
Also, VPython (Visual Python) is a great 3D visualization tool that uses Numpy under the hood. I developed a robot simulator using VPython; you can see screenshots and example code (for simple wall-following maze navigation) that you can check out in a recent blog post.