diff --git a/code_to_optimize/code_directories/simple_tracer_e2e/workload.py b/code_to_optimize/code_directories/simple_tracer_e2e/workload.py index db708a5c0..b929208f6 100644 --- a/code_to_optimize/code_directories/simple_tracer_e2e/workload.py +++ b/code_to_optimize/code_directories/simple_tracer_e2e/workload.py @@ -1,16 +1,15 @@ from concurrent.futures import ThreadPoolExecutor +from time import sleep def funcA(number): - number = number if number < 1000 else 1000 - k = 0 - for i in range(number * 100): - k += i - # Simplify the for loop by using sum with a range object - j = sum(range(number)) - - # Use a generator expression directly in join for more efficiency - return " ".join(str(i) for i in range(number)) + number = min(1000, number) + # Use arithmetic sum formula instead of for loop for k + k = (number * 100) * (number * 100 - 1) // 2 + # Use arithmetic sum formula for j as well for more efficiency + j = number * (number - 1) // 2 + # Use list comprehension for join for better performance with large 'number' + return " ".join([str(i) for i in range(number)]) def test_threadpool() -> None: @@ -21,6 +20,7 @@ def test_threadpool() -> None: for r in result: print(r) + class AlexNet: def __init__(self, num_classes=1000): self.num_classes = num_classes @@ -28,7 +28,7 @@ def __init__(self, num_classes=1000): def forward(self, x): features = self._extract_features(x) - + output = self._classify(features) return output @@ -43,15 +43,24 @@ def _classify(self, features): total = sum(features) return [total % self.num_classes for _ in features] + class SimpleModel: @staticmethod def predict(data): - return [x * 2 for x in data] - + result = [] + sleep(10) + for i in range(500): + for x in data: + computation = 0 + computation += x * i**2 + result.append(computation) + return result + @classmethod def create_default(cls): return cls() + def test_models(): model = AlexNet(num_classes=10) input_data = [1, 2, 3, 4, 5] @@ -60,6 +69,7 @@ def test_models(): model2 = SimpleModel.create_default() prediction = model2.predict(input_data) + if __name__ == "__main__": test_threadpool() test_models()