[MIT OpenCourseWare]
[1] 1. Introduction and Matrix Multiplication 일부

you see once again the mention of "performance" in jobs is going up. and anecdotally, I can tell you, I hand one student who came to me after the spring, after he'd taken 6.172, and he said, "you know, I went and I applied for five jobs. and every job asked me, at every job interview, they asked me a question I couldn't have answered if I hadn't taken 6.172, and I got five offers." OK? And when I compared those offers, they tended to be 20% to 30% larger than people who are just web monkeys. OK? so anyway, That's not to say that you should necessarily take this class, OK? But I just want to point out that what we're going to learn is going to be interesting from a practical point of view, i.e your futures. as well as theoretical points of view and technical points of view.
취업시장에서 'Performance'에 대한 언급이 다시 한 번 증가하고 있다는 것을 알 수 있습니다. 썰을 하나 풀어드리자면, 1학기에 이 강의를 들은 후 저를 찾아온 한 학생이 "이 강의를 듣고 5개를 입사 지원했는데, 모든 면접에서 이 강의를 듣지 않았다면 대답할 수 없었던 질문을 저에게 물어보더군요. 그러고 나서 5개의 오퍼를 받았어요."라고 말했죠. 그리고 그 오퍼들을 비교해보니 Web monkeys보다 20~30% 더 많은 오퍼를 받았어요. 어쨌든 이 수업을 꼭 들어야 한다는 말은 아닙니다. 다만 우리가 배우게 될 내용은 이론적 관점과 기술적 관점뿐만 아니라 여러분의 미래, 즉 실용적인 관점에서도 흥미로울 것이라는 점을 말씀드리고 싶어요.
[2] The Increasing Importance of Software Performance Engineering
https://www.youtube.com/shorts/hEcZxZjx8PE
So students should be interested in software performance engineering, because a larger and larger fraction of the engineering that they will do over the next 50 years will have to do with software performance. We don't have a free source of performance the way we did with Moore's Law. As a consequence, this is a great area to be getting into. It's an area that has shown over the last couple of years real significant growth. If you, look at some of the large, computing systems that we have today, they consume an enormous amount of energy threatening the climate of our planet. And software performance engineering is one way that we can address, making sure that we are proper stewards of our climate, environment.
따라서 학생들은 소프트웨어 성능 엔지니어링에 관심을 가져야 합니다. 앞으로 50년 동안 학생들이 하게 될 엔지니어링 업무의 점점 더 큰 비중이 소프트웨어 성능과 관련될 것이기 때문입니다. 무어의 법칙 때 우리가 했던 것처럼 성능 향상을 공짜로 얻을 수 있는 것은 없습니다.(무어의 법칙이 깨지기전, 하드웨어의 폭발적인 성능 향상으로 인해 소프트웨어적으로 극한의 최적화를 하지않고 기다리기만 해도 알아서 프로그램이 구동됐던 시기를 의미하는듯 함) 결과적으로 소프트웨어 성능 엔지니어링은 매우 유망한 분야입니다. 지난 몇 년 동안 이 분야는 상당한 성장을 보여왔습니다. 오늘날 우리가 사용하는 대규모 컴퓨팅 시스템들을 살펴보면 엄청난 양의 에너지를 소비하여 지구 기후를 위협하고 있습니다. 소프트웨어 성능 엔지니어링은 우리가 기후와 환경을 제대로 관리할 수 있도록 하는 한 가지 방법입니다.
[3] Why should I learn Software Performance Engineering ?
Software Performance Engineering (SPE)—making software run fast or otherwise consume fewer resources, such as time, storage, energy, network bandwidth, etc.—is emerging as a key technology for enabling programmers to enhance application performance in the post-Moore’s Law era. For decades, programmers could rely on Moore’s Law to speed up their applications, if they simply waited for new and faster hardware. But the end of Moore’s Law put an end to the exponential growth in semiconductor performance, which has put pressure on programmers to understand software performance. Unfortunately, most lack the background to do so. Their plight is exacerbated by modern parallel architectures (e.g. multicore CPUs and GPUs) and complicated computing systems whose capabilities can be hard for average programmers to exploit.
Software Performance Engineering(SPE)은 소프트웨어 실행 속도를 높이거나 시간, 저장 공간, 에너지, 네트워크 대역폭 등의 자원 소비를 줄이는 기술로, 무어의 법칙이 한계에 도달한 이후 프로그래머들이 애플리케이션 성능을 향상시키는 데 핵심적인 기술로 부상하고 있습니다. 수십 년 동안 프로그래머들은 새로운 고성능 하드웨어가 출시될 때까지 기다리기만 하면 무어의 법칙에 따라 애플리케이션 속도를 높일 수 있었습니다. 그러나 무어의 법칙이 끝나면서 반도체 성능의 기하급수적 성장이 멈췄고, 프로그래머들은 소프트웨어 성능에 대한 이해가 더욱 중요해졌습니다. 하지만 대부분의 프로그래머는 소프트웨어 성능에 대한 배경지식이 부족합니다. 더욱이, 멀티코어 CPU와 GPU 같은 최신 병렬 아키텍처와 복잡한 컴퓨팅 시스템의 기능은 일반 프로그래머들이 활용하기 어렵기 때문에 이러한 어려움은 더욱 가중되고 있습니다.
According to sources in industry and the national laboratories, graduating students in computer science are largely ignorant of performance-engineering skills. They lack an understanding of performance-engineering methods such as measurement, caching, vectorization, algorithms, profiling, compiler optimization, parallelism, concurrency, and many other techniques that currently are either distributed across university curricula, covered inadequately, or not taught at all. They cannot integrate their knowledge of algorithms, computer architecture, and software, and they have little understanding of theoretical models and foundational principles of performance.
산업계 및 국립 연구소 관계자들에 따르면, 컴퓨터 공학 졸업생들은 퍼포먼스 엔지니어링 스킬에 대해 대체로 무지한 상태입니다. 측정, 캐싱, 벡터화, 알고리즘, 프로파일링, 컴파일러 최적화, 병렬 처리, 동시성 등과 같은 퍼포먼스 엔지니어링 방법론에 대한 이해가 부족하며, 이러한 기술들은 현재 대학 교육과정에 산재되어 있거나, 불충분하게 다뤄지거나, 아예 가르쳐지지 않고 있습니다. 이들은 알고리즘, 컴퓨터 아키텍처, 소프트웨어에 대한 지식을 통합하지 못하고 있으며, 성능에 대한 이론적 모델과 기본 원리에 대한 이해도 미흡합니다.
SPE is traditionally used for scientific computing, such as computational physics, chemical engineering, bioinformatics, weather forecasting, healthcare and life sciences. In the post-Moore’s Law era, SPE becomes useful in almost all the application domains where you have lots of data to process. This includes all the IT companies who spend most of their resources on training large machine learning models or managing cloud computing in datacenters. More interestingly, there are also high computational demands in finance and manufacturing. As a performance engineer, if you are interested in finding a job in finance, here is an example of how SPE is used in high-frequency trading (HFT). In manufacturing, SPE is the enabler to simulations for autonomous driving, car crash safety, and airflow over plane wings.
Software Performance Engineering은 전통적으로 계산 물리학, 화학 공학, 생물 정보학, 기상 예측, 의료 및 생명 과학과 같은 과학 컴퓨팅 분야에서 사용되어 왔습니다. 무어의 법칙 이후 시대에 접어들면서 SPE는 방대한 데이터를 처리해야 하는 거의 모든 응용 분야에서 유용해졌습니다. 여기에는 대규모 머신 러닝 모델 학습이나 데이터 센터의 클라우드 컴퓨팅 관리에 대부분의 자원을 투자하는 모든 IT 기업이 포함됩니다. 더욱 흥미로운 점은 금융 및 제조 분야에서도 높은 컴퓨팅 수요가 발생한다는 것입니다. 성능 엔지니어로서 금융 분야에서 취업을 희망한다면, SPE가 고빈도 거래(HFT)에 어떻게 활용되는지 예를 들어 보겠습니다. 제조 분야에서는 SPE가 자율 주행, 자동차 충돌 안전, 항공기 날개 위 공기 흐름 시뮬레이션을 가능하게 하는 핵심 요소입니다.
'컴퓨터공학 > Performance Engineering' 카테고리의 다른 글
| The Cilk Runtime System (0) | 2026.04.06 |
|---|---|
| Parallel Storage Allocation (0) | 2026.03.30 |
| Storage Allocation (0) | 2026.03.27 |
| Bit Hacks (0) | 2026.03.24 |
| Synchronization Without Locks (0) | 2025.03.16 |