#2024-06-08 update, gidpot run time add
https://www.youtube.com/watch?v=11YfaGi0Fpk
아이패드에서 파이썬을 공부해 보고자 이리저리 자료를 찾다보니 지금은 라즈베리파이4b 를 사용 중이다.
(**2023년1월 현재 팔았다~)
여러 글과 동영상을 보면 아이패드에서 코딩을 하려면 결국 라즈베리파이를 통한 vscode 환경이 가장 정답처럼 보였다.
그간 시놀로지Nas에서 docker를 활용한 방접이나 라즈베리파이에 리눅스 설치 , 그리고 처음에 내 노트북을 세팅하는 것을 포함해서 프로그래밍 환경설정setting에 참 많은 시간을 쏟았던 것 같다. 강좌나 책을 따라하다보면 이 것이 되면 저것이 안 되고 원인을 찾다보면 코드 자체보다는 환경설정 문제로 안되었던 것이 참 많았다. 그래서 잘 설정해 둔 환경에서 코딩을 하고 싶었고 언제라도 포맷하고 다시 설정해 볼 수 있는 기기를 원했다. 성능 좋은 노트북도 있지만 2kg가 넘는 노트북을 매번 들고 나가기는 쉽지 않았다. 또한 가지고 있던 아이패드로 출 퇴근이나 간간히 카페를 들렀을 때 짬짬이 파이썬 공부를 하고 싶었다. 그래서 검색을 시작했다.
처음 아이패드 자체 앱에서 시작해서 지금까지 아래 순서를 거쳤다.
> 인터넷 글에서 추천하는 Pythonista App을 보고 구입해서 연습을 하다가 , pip 명령어등을 사용할 수 없어서
> 구글Colab으로 넘어갔다가, 자주 끊기는 통에 다시 찾아보니
> Carnet App으로 jupyter 형태로 넘어 왔지만 vscode 가 손에 익으면서 debug가 불편하니
> raspberry pi 를 사용한 Code-Server에 원격접속하는 방법을 사용 중이다.
Tip - (처음으로 되돌아 간다면 setting에 그 많은 시간을 쏟은 것이 아까워, 먼저 gitlab.com의 계정에서 > gitpod.io 를 사용 하는 방법을 배우겠다. 이미 설정이 끝난 web VSCODE에서 파이썬 코드 자체와 디버깅을 해보고 각자의 환경마다 달라지는 -환경설정- 을 찾는다면 헛된 곳에 시간을 쏟는 것이 줄어들 것이다. 익숙해진 이후 자기 환경에 맞춰 기기를 고르고 그에 맞게 세팅 하는 것이 좋겠다. )
윈도우만 사용해 오던 내가, 익숙하지 않은 리눅스 명령어도 어느 정도 손에 익어서 환경설정 자체가 크게 어렵지 않게 되었다. 그러다보니 최근에는 라즈베리파이4의 속도가 왜 이렇게 느리지란 생각이 들기 시작한다. 파이썬 트레이딩 카페에서 고사양 컴퓨터를 사용하는 이들을 이해하지 못했는데 지금은 이해가 된다. 생각해 보면 사용목적보다는 처음 라즈베리파이4가 가격이 저렴하고 세팅하는 자료와 영상이 많아서 이 것을 구입했던 것 같다. 간단히 사용할 때에는 그저 code를 RUN 하는 것 자체가 목적이였다면 이제는 code를 어느 정도 다루게 되어 - run TIME -도 관심을 가지게 된 것이다.
IT기기에 관심이 많은 이들은 성능에 대한 벤치마크에도 관심이 많다. 나도 내가 가진 기기들에서의 실행시간이 많이 차이날까? 하는 궁금증이 있긴 했다. 그래도 귀찮아서 그냥 쓰고 있던 중이였다. 몇 일전 라즈베리파이에 GUI환경으로 접속할 일이 있어 접속했다가 돌연 무진장 느린 듯한 느낌을 받았다. 그리고 아이패드 Carnet 에서 쓰던 코드가 라즈배리파이4에서 Code-server에서 실행하면 멈춘 듯한 순간을 자주 겪게 된다. 이런 경험이 점점 늘어나다보니 비교를 해보기로 했다.
그 결과, 실행시간은 생각보다 꽤 많은 차이가 있었다.
실행 시간 측정과 결과 비교
일단 리스트를 자주 사용하다보니 간단한, 그리고 멍청한 코드라고 되어 있지만 실행시켜보았다.
#py001.py
def test():
"""Stupid test function"""
lst = []
for i in range(300):
lst.append(i)
if __name__ == '__main__':
import timeit
print("start")
print(timeit.timeit("test()", setup="from __main__ import test"))
# For Python>=3.5 one can also write:
print(timeit.timeit("test()", globals=locals()))
각 환경별로 실행시켜 본 결과를 요약하면 아래 표와 같다. * 짧은 시간이 빠른 것임
실행환경 |
라즈베리파이4 |
아이패드프로M1 |
노트북A (인텔 i5-5200u) |
노트북B (Ryzen 5800H) |
구글 Colab | gitpod (8GB RAM) |
실행시간 | 40초 | 11.3초 | 20.1초 | 8.8초 | 21.0초 | 6.4초 |
11인치 아이패드와 비교해도 거의 4배의 속도차이가 난다. 간단히 몇 줄씩 할 때는 몰랐지만 코드가 길어지고 할 수록 실행속도 차이를 체감하는 것이 이상한 현상이 아니였다. 아무리 code-server로 어디에서도 코드를 만져볼 수 있다는 것이 장점이긴 하지만 속도차이가 생각보다 크다.
그래서 집에서 뒹굴던 2015년 Intel CPU를 탑재한 노트북A에 테스트겸 우분투_wsl를 깔아서 비교해 보니 그래도 2배의 속도 차이다. (이 노트북은 중고로 15만원에 내놓아도 안 팔리고 있다. ㅠㅠ) 메모리 품귀현상에 요즘에 라즈베리파이4가 15만원을 하는 상황이면 중고노트북을 사는 것이 나을지도 모른다.
각 환경마다 동일한 파이썬 3.9.13버전을 사용했고 노트북B를 제외하고서는 지저분한 세팅이 없어서 크게 느려지거나 할 요인은 없다.
실행결과 상세
먼저, 라즈베리파이4 에서 Code-server 환경에서의 실행결과 :: 40.0초
IpadPro M1에서 Carnet App에서의 실행결과 :: 11.3초
노트북A (intel 5세대 i5-5200) 에서의 실행결과 :: 20.1초
노트북B (Ryzen 5800H) 에서의 실행결과 :: 8.8초 (인터넷에서는 ubuntu가 통상 빠르다고들 하던데, 비슷하게 나옴)
구글Colab / 21초
gitpod.io / 6.5초
에서 Large model (8GB) 로 실행시켜보니 cpu 사양이 아주 좋음!
Benchmark 사이트의 CPU별 비교자료
https://www.cpu-monkey.com/en/compare_cpu-raspberry_pi_4_b_broadcom_bcm2711-vs-intel_core_i5_5200u
Raspberry Pi 4 B (Broadcom BCM2711) vs Intel Core i5-5200U Benchmark, comparison and differences
CPU with the best price/performance ratio leaderboard 2022
www.cpu-monkey.com
위 사이트에서 각 CPU별 사양을 비교해 보자.
노트북A (i5-5200u) vs 노트북B (Ryzen 5800H)의 비교를 보면, 실행시간은 Single-Core의 성능차이만큼 나는 것 같다.
아이패드프로M1 (11초) vs 노트북B (8.8초) 의 비교를 보면
M1칩의 성능을 가진 아이패드가 약간은 더 빨라야 할 듯 하나, 근소하게나마 노트북B가 더 빠르긴 해도 Geekbench 5의 Multi-Core 비교정도 수준으로 비슷하다고 봐도 될 것 같다.
자, 그럼 이제.... 우리의 주인공인 라즈베리파이4 vs 노트북B를 비교해 보면
Single-Core 기준으로 벤치마크 비교는 대략 7배 차이가 난다. 위 코드의 실행시간은 40초 / 8.8초로 대략 4.5배 차이가 난다. 벤치마크의 결과가 전부는 아니라고 하더라도 그 성능차이를 생각하면 꽤 크다.
2015년도 출시한 노트북A의 i5 5200u와 비교해 보자.
40초 / 20초로 노트북A가 2배 정도 빠른 실행속도를 보여준다. Geekbench의 결과를 보면 얼추 비슷하게 나오는 듯 하다.
그래서 결론은 라즈베리파이4는 단순 코딩용으로는 괜찮지만 뭘 좀 해보려면
-인텔 Nuc-같은 미니PC나 소형 홈서버를 구축해서 사용해야 될까 고민이 된다.
_