1. A method for fault detection, the method comprising: extracting data based upon one or more predefined rules; preprocessing the extracted data based on the predefined rules to generate two or more rule groups, wherein the preprocessing includes evaluating a rule affinity of the predefined rules and grouping the predefined rules based on the evaluated rule affinity to generate the two or more rule groups, the grouping of rules being based on a number of data points, number of rules, number of similar rule conditions, or a combination of the number of data points, number of rules and number of similar rule conditions, and the preprocessing also includes precalculating computations of the extracted data as specified by the predefined rules; instantiating two or more inference engines based on the generated rule groups, wherein one of the inference engines is instantiated for each rule group; and processing the extracted data by a corresponding inference engine based on the predefined rules to generate processed data.