Skip to content

Instantly share code, notes, and snippets.

@nmsderp
Last active August 16, 2024 03:00
  • Select an option

Select an option

Revisions

  1. nmsderp revised this gist Aug 16, 2024. 1 changed file with 23 additions and 9 deletions.
    32 changes: 23 additions & 9 deletions stresstest.py
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,11 @@
    # THIS IS FOR THE RASPBERRY PI PICO W WITH MICROPYTHON
    import machine
    import time
    import math
    import machine

    # 270 mhz your Pico MAY go to 300mhz!
    # Not tested on Pico 2!
    # If I get a Pico 2 I will make one that uses 1 Arm core and 1 RISC-V core
    machine.freq(270000000)

    def calculate_pi(n):
    pi = 0
    @@ -15,22 +19,30 @@ def calculate_pi(n):
    return pi

    def complex_math_calculations():
    factorial_result = math.factorial(100)
    factorial_result = math.factorial(1025)

    def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
    a, b = b, a + b
    return a
    fibonacci_result = fibonacci(100)
    fibonacci_result = fibonacci(1025)

    def is_prime(n):
    if n <= 1:
    return False
    for i in range(2, int(math.sqrt(n)) + 1):
    if n % i == 0:
    return False
    return True
    prime_result = [i for i in range(1000) if is_prime(i)]
    return factorial_result, fibonacci_result, prime_result
    prime_result = [i for i in range(10000) if is_prime(i)]

    matrix_size = 65
    matrix_a = [[i * j for j in range(matrix_size)] for i in range(matrix_size)]
    matrix_b = [[i + j for j in range(matrix_size)] for i in range(matrix_size)]
    matrix_c = [[sum(a * b for a, b in zip(matrix_a_row, matrix_b_col)) for matrix_b_col in zip(*matrix_b)] for matrix_a_row in matrix_a]

    return factorial_result, fibonacci_result, prime_result, matrix_c

    def read_temperature():
    sensor = machine.ADC(4)
    @@ -41,18 +53,20 @@ def read_temperature():

    def stress_test_iteration():
    print("Calculating digits of Pi...")
    pi_digits = calculate_pi(10)
    pi_digits = calculate_pi(800)
    print(f"Pi: {pi_digits}")

    print("Performing complex mathematical calculations...")
    factorial_result, fibonacci_result, prime_result = complex_math_calculations()
    factorial_result, fibonacci_result, prime_result, matrix_c = complex_math_calculations()
    print(f"Factorial Result: {str(factorial_result)[:50]}...")
    print(f"Fibonacci Result: {fibonacci_result}")
    print(f"Prime Numbers: {prime_result[:50]}")
    print(f"Matrix C[0][0]: {matrix_c[0][0]}")

    print("Reading temperature...")
    temperature = read_temperature()
    print(f"Temperature: {temperature:.2f} C")
    print(machine.freq())

    def stress_test(duration_minutes=30):
    start_time = time.ticks_ms()
    @@ -71,7 +85,7 @@ def stress_test(duration_minutes=30):
    print(f"Iteration {iteration_count} completed in {iteration_duration} ms")
    print(f"Elapsed time: {elapsed_time} seconds")

    time.sleep(1)
    time.sleep(0.05)

    print("Stress test completed")

  2. nmsderp created this gist Jun 24, 2024.
    79 changes: 79 additions & 0 deletions stresstest.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,79 @@
    # THIS IS FOR THE RASPBERRY PI PICO W WITH MICROPYTHON
    import time
    import math
    import machine

    def calculate_pi(n):
    pi = 0
    for k in range(n):
    pi += (1 / (16 ** k)) * (
    (4 / (8 * k + 1)) -
    (2 / (8 * k + 4)) -
    (1 / (8 * k + 5)) -
    (1 / (8 * k + 6))
    )
    return pi

    def complex_math_calculations():
    factorial_result = math.factorial(100)
    def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
    a, b = b, a + b
    return a
    fibonacci_result = fibonacci(100)
    def is_prime(n):
    if n <= 1:
    return False
    for i in range(2, int(math.sqrt(n)) + 1):
    if n % i == 0:
    return False
    return True
    prime_result = [i for i in range(1000) if is_prime(i)]
    return factorial_result, fibonacci_result, prime_result

    def read_temperature():
    sensor = machine.ADC(4)
    conversion_factor = 3.3 / (65535)
    reading = sensor.read_u16() * conversion_factor
    temperature = 27 - (reading - 0.706) / 0.001721
    return temperature

    def stress_test_iteration():
    print("Calculating digits of Pi...")
    pi_digits = calculate_pi(10)
    print(f"Pi: {pi_digits}")

    print("Performing complex mathematical calculations...")
    factorial_result, fibonacci_result, prime_result = complex_math_calculations()
    print(f"Factorial Result: {str(factorial_result)[:50]}...")
    print(f"Fibonacci Result: {fibonacci_result}")
    print(f"Prime Numbers: {prime_result[:50]}")

    print("Reading temperature...")
    temperature = read_temperature()
    print(f"Temperature: {temperature:.2f} C")

    def stress_test(duration_minutes=30):
    start_time = time.ticks_ms()
    end_time = start_time + duration_minutes * 60 * 1000
    iteration_count = 0

    while time.ticks_ms() < end_time:
    iteration_start_time = time.ticks_ms()
    stress_test_iteration()
    iteration_end_time = time.ticks_ms()
    iteration_duration = time.ticks_diff(iteration_end_time, iteration_start_time)

    iteration_count += 1
    elapsed_time = time.ticks_diff(iteration_end_time, start_time) // 1000

    print(f"Iteration {iteration_count} completed in {iteration_duration} ms")
    print(f"Elapsed time: {elapsed_time} seconds")

    time.sleep(1)

    print("Stress test completed")

    stress_test(30)