You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Oliver B. Fischer" <ma...@swe-blog.net> on 2012/01/03 23:27:01 UTC
Performance measurement framework for Mathout
Hi,
I am working for some time on Thotti. Thotti aims to be a performance
measurement framework for Mahout. It allows you to monitor the
performance of Mahout and compare different setups (JVM settings, Mahout
settings).
Thotti allows you to define your own test cases with normal Java classes
and annotations in a very similar manner to TestNG and similar
frameworks. At the moment only non-distributed tests can be executed,
but it is planned to suppport distributed tests too.
For test execution Thotti utilizes currently EC2 instances and contains
a component to manage EC2 instances (creation, termination). It also
makes heavy use of S3 to store distribute test, test data and test
result. But with a little bit work it can be extended to support
different cloud services or local servers.
Since Thotti is now stable enough for non-distributed tests I would like
to implement a reference test suite for Mahout for non-distributed
algorithms.
To build this reference test suite I need your help. Please send me your
test cases. Thotti is able to run the same test multiple times, with
different JVM settings and differerent parameters. So you can send me
your test cases and test data along with different test setups.
The example test case below will be executed by Thotti once. The JVM
will run with -server.
public class SimpleRecommenderTest {
@NDTest(id = "BForJVM909",
run = @Run(jvmArgs = @JVMArgs(id = "jvm909", value =
"-server")))
public void executeTest() throws IOException, TasteException {
DataModel model = new FileDataModel(prependDataDir(new
File("intro.csv")));
UserSimilarity similarity = new
PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood =
new NearestNUserNeighborhood(2, similarity, model);
Recommender recommender = new GenericUserBasedRecommender(
model, neighborhood, similarity);
recommender.recommend(1, 1);
}
}
I would be gratefull for your support on this work.
Bye,
Oliver
Re: Performance measurement framework for Mathout
Posted by Oliver Fischer <ma...@swe-blog.net>.
Of course. As written before it allows you to define test scenarios for
Mahout as for example: Run this recommender with different JVM settings
or different parameters. The test scenario will be executed once of each
given JVM settings and for each given parameter set.
Using this feature you are able to compare the runtime of Mahout for
different JVM settings and the best configuration for a given algorithm
from the view point of runtime. For example will be able to compare the
runtime of your recommander for 10, 50 and 100 recommendation using the
same test. Thotti collect the results of your tests and visualize them.
Although the visualization is not implemented yet.
Beyond Thotti can be used even to compare the runtime of Mahout for
different hardware setups. If you would like to know if Mahout will run
faster an an different machine setup, run the same tests on the old
configuration and the new one.
Bye,
Oliver
Am 07.01.2012 08:59, schrieb Isabel Drost:
> On 03.01.2012 Oliver B. Fischer wrote:
>> Thotti's home is at https://github.com/obfischer/repositories
>>
>> I will update the example project
>> (https://github.com/obfischer/Thotti-E2) during the next days. There is
>> also need for some documentation.
>
> Thanks for sharing the links, Oliver. It would be great if you could give a very
> brief overview of what people can do with the framework. Would be great if that
> would develop into something that can be run regularly to avoid performance
> regressions in our code.
>
> Isabel
Re: Performance measurement framework for Mathout
Posted by Isabel Drost <is...@apache.org>.
On 03.01.2012 Oliver B. Fischer wrote:
> Thotti's home is at https://github.com/obfischer/repositories
>
> I will update the example project
> (https://github.com/obfischer/Thotti-E2) during the next days. There is
> also need for some documentation.
Thanks for sharing the links, Oliver. It would be great if you could give a very
brief overview of what people can do with the framework. Would be great if that
would develop into something that can be run regularly to avoid performance
regressions in our code.
Isabel
Re: Performance measurement framework for Mathout
Posted by "Oliver B. Fischer" <ma...@swe-blog.net>.
Hello Keren,
Thotti's home is at https://github.com/obfischer/repositories
I will update the example project
(https://github.com/obfischer/Thotti-E2) during the next days. There is
also need for some documentation.
Bye
Oliver
Am 03.01.2012 23:41, schrieb Keren Ouaknine:
> Hello Oliver,
>
> It sounds like a great project, can you send me a link with more
> information?
>
> I dont have new use cases, as I am using Mahout's *samples* for test
> performance in front of other systems.
> Thanks,
> Keren
>
> On Tue, Jan 3, 2012 at 5:27 PM, Oliver B. Fischer<ma...@swe-blog.net>wrote:
>
>> Hi,
>>
>> I am working for some time on Thotti. Thotti aims to be a performance
>> measurement framework for Mahout. It allows you to monitor the performance
>> of Mahout and compare different setups (JVM settings, Mahout settings).
>>
>> Thotti allows you to define your own test cases with normal Java classes
>> and annotations in a very similar manner to TestNG and similar frameworks.
>> At the moment only non-distributed tests can be executed, but it is planned
>> to suppport distributed tests too.
>>
>> For test execution Thotti utilizes currently EC2 instances and contains a
>> component to manage EC2 instances (creation, termination). It also makes
>> heavy use of S3 to store distribute test, test data and test result. But
>> with a little bit work it can be extended to support different cloud
>> services or local servers.
>>
>> Since Thotti is now stable enough for non-distributed tests I would like
>> to implement a reference test suite for Mahout for non-distributed
>> algorithms.
>>
>> To build this reference test suite I need your help. Please send me your
>> test cases. Thotti is able to run the same test multiple times, with
>> different JVM settings and differerent parameters. So you can send me your
>> test cases and test data along with different test setups.
>>
>> The example test case below will be executed by Thotti once. The JVM will
>> run with -server.
>>
>> public class SimpleRecommenderTest {
>> @NDTest(id = "BForJVM909",
>> run = @Run(jvmArgs = @JVMArgs(id = "jvm909", value =
>> "-server")))
>> public void executeTest() throws IOException, TasteException {
>> DataModel model = new FileDataModel(prependDataDir(**new
>> File("intro.csv")));
>>
>> UserSimilarity similarity = new PearsonCorrelationSimilarity(**
>> model);
>>
>> UserNeighborhood neighborhood =
>> new NearestNUserNeighborhood(2, similarity, model);
>>
>> Recommender recommender = new GenericUserBasedRecommender(
>> model, neighborhood, similarity);
>>
>> recommender.recommend(1, 1);
>> }
>> }
>>
>> I would be gratefull for your support on this work.
>>
>> Bye,
>>
>> Oliver
>>
>>
>
>
Re: Performance measurement framework for Mathout
Posted by Keren Ouaknine <ke...@gmail.com>.
Hello Oliver,
It sounds like a great project, can you send me a link with more
information?
I dont have new use cases, as I am using Mahout's *samples* for test
performance in front of other systems.
Thanks,
Keren
On Tue, Jan 3, 2012 at 5:27 PM, Oliver B. Fischer <ma...@swe-blog.net>wrote:
> Hi,
>
> I am working for some time on Thotti. Thotti aims to be a performance
> measurement framework for Mahout. It allows you to monitor the performance
> of Mahout and compare different setups (JVM settings, Mahout settings).
>
> Thotti allows you to define your own test cases with normal Java classes
> and annotations in a very similar manner to TestNG and similar frameworks.
> At the moment only non-distributed tests can be executed, but it is planned
> to suppport distributed tests too.
>
> For test execution Thotti utilizes currently EC2 instances and contains a
> component to manage EC2 instances (creation, termination). It also makes
> heavy use of S3 to store distribute test, test data and test result. But
> with a little bit work it can be extended to support different cloud
> services or local servers.
>
> Since Thotti is now stable enough for non-distributed tests I would like
> to implement a reference test suite for Mahout for non-distributed
> algorithms.
>
> To build this reference test suite I need your help. Please send me your
> test cases. Thotti is able to run the same test multiple times, with
> different JVM settings and differerent parameters. So you can send me your
> test cases and test data along with different test setups.
>
> The example test case below will be executed by Thotti once. The JVM will
> run with -server.
>
> public class SimpleRecommenderTest {
> @NDTest(id = "BForJVM909",
> run = @Run(jvmArgs = @JVMArgs(id = "jvm909", value =
> "-server")))
> public void executeTest() throws IOException, TasteException {
> DataModel model = new FileDataModel(prependDataDir(**new
> File("intro.csv")));
>
> UserSimilarity similarity = new PearsonCorrelationSimilarity(**
> model);
>
> UserNeighborhood neighborhood =
> new NearestNUserNeighborhood(2, similarity, model);
>
> Recommender recommender = new GenericUserBasedRecommender(
> model, neighborhood, similarity);
>
> recommender.recommend(1, 1);
> }
> }
>
> I would be gratefull for your support on this work.
>
> Bye,
>
> Oliver
>
>
--
Keren Ouaknine
Web: www.kereno.com