The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here

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-RapidMiner, 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, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM Moderator Posts: 2,959 Community Manager
  • sgenzersgenzer Administrator, Moderator, Employee-RapidMiner, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM Moderator Posts: 2,959 Community Manager
  • sgenzersgenzer Administrator, Moderator, Employee-RapidMiner, RapidMiner Certified Analyst, Community Manager, Member, University Professor, PM Moderator Posts: 2,959 Community Manager
Sign In or Register to comment.