본문 바로가기

전체 글100

행렬 곱셈 최적화 2편 안녕하세요 조엘입니다! 프로젝트로 진행한 행렬곱셈 최적화에 대한 포스팅을 진행하도록 하겠습니다. 소스코드는 https://github.com/joelonsw/Matrix-Multiplication-Multithreading에서 확인하실 수 있습니다! DNS알고리즘을 통해 병렬처리를 진행했지만, multi 함수는 KIJ 방식 그대로여서 LLC miss rate가 개선되지 못했습니다. 이를 개선하고자 Tiling 방법을 도입했습니다. 매트릭스의 메모리에 접근할 때, 왼쪽과 같이 탐색하게 되면, 매트릭스의 사이즈가 캐시의 사이즈보다 큰 경우, 매트릭스 탐색 후 다시 매트릭스의 첫요소에 접근할 때 캐시에 남아있지 않게 됩니다. 이를 방지하고자 Tiling 방법을 도입했는데, 이는 캐시에 남아있을 때 해당 배열에.. 2020. 7. 23.
행렬 곱셈 최적화 1편 안녕하세요 조엘입니다! 프로젝트로 진행한 행렬곱셈 최적화에 대한 포스팅을 진행하도록 하겠습니다. 소스코드는 https://github.com/joelonsw/Matrix-Multiplication-Multithreading에서 확인하실 수 있습니다! 저는 총 4가지 단계를 거쳐 최적화를 진행했습니다. 1.인덱싱 순서를 바꾸어 캐시 hit ratio을 증가시켰습니다. 2.멀티 쓰레딩을 통해 병렬처리를 진행하였습니다. 3.타일링 기법을 통해 캐시 hit ratio를 증가시켰습니다. 4.SIMD를 통해 한번에 많은 데이터를 처리할 수 있게 하였습니다. 실험은 다음과 같은 환경에서 진행했습니다. 모든 소스코드는 C++로 작성을 했고, g++ version 7.5.0을 사용했습니다. 컴파일 옵션은 최적화 옵션을 .. 2020. 7. 23.
[Django] Django 소개 깃헙에 올려놓은 웹 호스팅은 정적 웹의 예시입니다. (https://papimonlikelion.github.io/) 사용자는 그냥 와서 보고 가기만 하는 용도의 역할만 하죠. 사용자가 댓글을 달거나, 파일을 업로드하거나 할 수가 없어요. 만약 사용자가 댓글을 달게 해준다면, 주인장인 제가 어서 빨리 사용자의 댓글을 확인해서 다시 코딩해서 다시 업로드 해 줄 수 밖에 없겠네요. 동적 웹은 하지만 그렇지 않아요! 우리가 맨날 쓰는 유튜브, 네이버같은 페이지들에서는 댓글도 실시간으로, 파일도 올리고, 여러가지 활동을 지원해 줍니다. 사용자의 요청에 따라 홈페이지의 데이터베이스 어딘가에 그 요청이 저장이 되어, 그에 해당하는 응답을 바로 바로 저에게 다시 보여주는 것이죠. 동적 웹을 만드는 방법은 여러가지가 .. 2020. 5. 16.
쉘(Shell)에 관하여 사실 운영체제와 시스템 쪽은 아직 내가 깊게 공부를 하지 않아서 잘 모른다ㅜㅜ 하지만 오늘 그래도 나름 새로운 지식(?)을 깨달은 것 같아 블로그에 포스팅 해보려고 한다. 만약 내가 잘못알고 있는게 있다면 제발 알려주셨으면 한다! Shell은 하드웨어를 동작하게 해주는 사용자 명령어 해석기! 커널(간략히 운영체제라고 생각하자)을 직접 사용자가 조작하는 것은 거의 불가능하다고 한다. 고로 커널을 조작할 수 있는 쉘이 내가 하드웨어와 소통할 수 있는 최밑단의 방법이다. 쉘에서 명령어를 치면, 커널이 쉘의 명령을 번역하여 알아듣고, 커널이 하드웨어에게 해당 명령을 수행해 달라고 부탁을 또 한다. 쉘은 종류가 한개가 아니다! Powershell, bash, cmd, zsh 등등 사용자에게 맞는 쉘을 통해 자기에.. 2020. 5. 10.
컴퓨터 네트워크 3강 안녕하세요. 파피몬입니다. 이번 학기에 전공 수업으로 컴퓨터 네트워크를 수강 중입니다. 공부하면서 적는 포스팅이니, 내용이 정확하지 않을 수 있습니다. Computer Networking (7th edition) - Jim Kurose, Keith Ross 책을 기반으로 작성하였습니다. 오류가 있다면 친절하게 알려주시면 감사하겠습니다!! **해당 포스팅을 참고하여 작성하였습니다!** https://blog.naver.com/PostView.nhn?blogId=myca11&logNo=221389847130&categoryNo=24&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView 소켓(Socket) 포트(Port) 뜻과 .. 2020. 4. 9.
컴퓨터 네트워크 2강 안녕하세요. 파피몬입니다. 이번 학기에 전공 수업으로 컴퓨터 네트워크를 수강 중 입니다. 공부하면서 적는 포스팅이니, 내용이 정확하지 않을 수 있습니다. Computer Networking (7th edition) - Jim Kurose, Keith Ross 책을 기반으로 작성하였습니다. 오류가 있다면 친절하게 알려주시면 감사하겠습니다!! 0. 패킷의 Loss / Delay 가 일어나는 법 - 패킷은 라우터 버퍼에서 줄서서 기다린다. - 패킷 도착률이 출력 링크 수용치를 넘어갈 경우, 패킷은 줄에서 기다리고 순서를 기다린다. - 그러면서 꼬리부분을 버리기도 한다. - Dproc : 프로세싱 과정에서의 Delay * 비트 에러 확인, 출력 링크 결정 - Dqueue : 줄 서서 기다릴때의 Delay * 출.. 2020. 4. 8.
컴퓨터 네트워크 1강 안녕하세요. 파피몬입니다. 이번 학기에 전공 수업으로 컴퓨터 네트워크를 수강 중 입니다. 공부하면서 적는 포스팅이니, 내용이 정확하지 않을 수 있습니다. Computer Networking (7th edition) - Jim Kurose, Keith Ross 책을 기반으로 작성하였습니다. 오류가 있다면 친절하게 알려주시면 감사하겠습니다!! 0. 네트워크란 - 특별한 하드웨어와 소프트웨어를 사용해 서로 정보를 교환할 수 있게끔 연결된 장치들 1. 인터넷을 바라보는 시각 - "Nuts and Bolts" : 영어로 'Nuts and Bolts'는 '주제/일에 대한 기본적인 사안'이라는 뜻이다. 인터넷이 뭔지 알아보자. * 세상에는 백만개의 컴퓨팅 기기가 연결되어 있다. 이를 우리는 host 또는 end sy.. 2020. 4. 7.
C언어 복습 <part4> 안녕하세요. 파피몬입니다. 이번 겨울방학에 최호성 선생님의 "독하게 시작하는 C프로그래밍" 책을 유튜브 강의와 함께 공부하였습니다. 강의를 들은 내용을 종이에 정리하였고, 이 중 중요하다고 판단한 내용을 포스팅 하도록 하겠습니다. 아직 모르는 게 많은 학생이라 오개념이 있을 수 있습니다. 친절하게 댓글로 알려주시면 좋은 공부 될 것 같습니다!! 이번 Part4에서는, 11단원. 메모리와 포인터에 대해서 복습해봅니다. 내용이 많아 정리는 PDF로 대신하고, 자주 쓰는 함수에 대해서 정리하였습니다. 1. 동적 할당 함수 및 멤버 초기화 void *malloc(size_t size); // 인자 : size == 할당 받을 메모리 바이트 단위 크기 // 반환값 : 힙 영역에 할당된 메모리 덩어리 중 첫 번째 .. 2020. 3. 24.
C++ 5단원 복습! (2편) 안녕하세요. 파피몬입니다. 이 복습 내용은 최호성 선생님의 "이것이 C++이다"를 공부하고 작성하였습니다. 아직 모르는 게 많은 학생이라 오개념이 있을 수 있습니다. 친절하게 댓글로 알려주시면 좋은 공부 될 것 같습니다!! 5단원에서는 연산자 다중정의에 대해서 배워봅니다. 1편, 2편으로 나누어져 있습니다. Chapter 5. 연산자 다중정의 6. 배열 연산자를 다루기 전, const가 지정하는 대상이 무엇인지 정확히 인지할 필요가 있다. ** http://egloos.zum.com/chideout/v/4158795 정리가 잘 되어 있는 이 포스팅을 통해 공부하였다. ** const class_name operator+( const class_name&) const { } 라는 메소드가 있다고 가정하자... 2020. 3. 22.
반응형