Due to recent updates, all users are required to create an Altair One account to login to the RapidMiner community. Click the Register button to create your account using the same email that you have previously used to login to the RapidMiner community. This will ensure that any previously created content will be synced to your Altair One account. Once you login, you will be asked to provide a username that identifies you to other Community users. Email us at Community with questions.

Integer Overflow in com.rapidminer.operator.meta.ParameterIteration.java in 7.5+

svzelstsvzelst Member Posts: 7 Contributor II
edited December 2018 in Product Feedback - Resolved

<< also reported in: https://github.com/rapidminer/rapidminer-studio/issues/22 >>

 

Dear RapidMiner team,

(I develop the RapidProM extension for RM).
I found a (severe) bug in the "Loop Parameters" operator

In my experiments (I'm a researcher) I use the "Loop Parameters" operator a lot (com.rapidminer.operator.meta.ParameterIteration.java).
I just found out that in the doWork() method, the actual number of combinations (int numberOfCombinations) is counted twice.
In case of a very large number of iterations (which tends to happen in large scale experiments), the variable reaches an overflow and becomes negative.
As a result I get a UserError related to the fact that no valid parameter combination can be generated, i.e.:

if (numberOfCombinations < 1 || values.length == 0) {
throw new UserError(this, 958);
}

I can see some ways how to fix this, however, since I'm not very familiar with the meaning of all variables within the operator I guess it is best if one of you guys fixs this.

cheers,

Bas.

Tagged:
0
0 votes

Fixed and Released · Last Updated

Comments

  • jczogallajczogalla Employee, Member Posts: 144 RM Engineering

    Hi Bas!

    You are right, this is not a helpful user error. Since the Loop Parameters Operator will be parallelized with the next update, the original and then deprecated ParameterIteration will most likely not be fixed, but the parallel version will address this better.

    However, since the #iterations influences other variables that are also just in the int scope, it will not be easily fixable to do more than maximum integer iterations, I fear.

    May I ask why you run into so many combinations? More than two billion seems a lot, maybe this could be setup in another way? But if you need this many iterations, a workaround would be to use nested Loop Parameters Operators, splitting the combinations.

    Cheers,

    Jan

  • sgenzersgenzer Administrator, Moderator, Employee, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM Moderator Posts: 2,959 Community Manager
  • sgenzersgenzer Administrator, Moderator, Employee, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM Moderator Posts: 2,959 Community Manager
  • sgenzersgenzer Administrator, Moderator, Employee, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM Moderator Posts: 2,959 Community Manager
Sign In or Register to comment.