1. Trang chủ
  2. » Luận Văn - Báo Cáo

tìm hiểu về chương trình debugger

57 347 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 810,5 KB

Nội dung

Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song MỤC LỤC Mục Lục Lời nói đầu Phần 1 Tổng quan về tính toán song song Giới thiệu về tính toán song song……………………… 5 Định nghĩa tính toán song song…………………………………. 5 Nhu cầu về tính toán song song…………………………………. 5 Sự phát triển của lập trình song song ngày nay……………… 6 Phân loại kiến trúc máy tính song song………………………… 7 Các giải thuật song song……………………………………… 10 Mô hình lập trình…………………………………………. 11 Kiến trúc siêu máy tính của Beowulf………………………… 12 Thư viện lập trình………………………………………………. 13 Thư viện truyền thông MPI…………………………… 13 Cấu trúc chương trình………………………………………… 13 Một số kiểu dữ liệu được dùng………………………………… 14 Các hàm cơ bản…………………………………………………. 14 Phần 2 Hệ quản lý tài nguyên và phân tải Mục đích và nhiệm vụ của hệ quản lý tài nguyên và phân tải ………………………………………………… 19 Hệ thồng quản lý tài nguyên và phân tải …………. 21 Một số khái niêm cơ bản …………………………………… 21 Một số dặc trưng cơ bản …………………………………… 22 Các phân hệ trong PBS ……………………………………… 23 3.1 Phân hệ quản lý công việc PBS_Server ………………… 23 Tiêu Công Thắng-Lớp HTTT 1 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song 3.2 Phân hệ lập lịch PBS_Sheduler …………………………… 24 3.3 Phân hệ quản lý tài nguyên và thực thi công việc PBS_Mom 26 Hoạt động của hệ thống ………………………………………… 29 4.1 Giao tiếp giữa PBS_Server và PBS_Sheduler …………… 30 4.2 Giao tiếp giữa PBS_Sheduler và PBS_Mom ……………. 31 4.3 Giao tiếp giữa PBS_Server và PBS_Mom ……………. 31 Sự đóng gói dữ liệu và truyền thông ……………………… 32 5.1 Các đặc tả của chuẩn ASN.1 về định dạng dữ liệu … … 33 5.2 Phương pháp mã hoá DIS ………………………………. 38 Một số kết quả đã đạt được và định hướng phát triển 40 1. Một số kết quả trung tâm đã đạt được ……………………………… 41 2. Định hướng phát triển ………………………………………………… 41 Phần 3 Tìm hiểu về chương trình debugger Debugger Interface………………………………………. 43 Khái niêm Parallel Debugger………………………………… 43 Cách thức hoạt động của chương trình debugger……………. 44 Giao diện………………………………………………………… 45 Debugger Output……………………………………………… 45 Hiệu ứng của sự song song trong quá trình debugger Tên của các tiến trình và các luồng……………………………. 46 Tập các tiến trình và các luồng………………………………… 47 Tập tên………………………………………………………… 48 High Performance Debugger Version 1……………… 48 Giới thiệu về nhóm HPDF……………………………………… 48 High Performance Debugger Version 1……………………… 49 2.1 Giao diên………………………………………………… 49 2.2 Khởi tạo……………………………………………………50 2.3 ActionPoints……………………………………………….51 2.4 Đặc tả lệnh……………………………………………… 51 Tiêu Công Thắng-Lớp HTTT 2 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song Tiêu Công Thắng-Lớp HTTT 3 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song LỜI NÓI ĐẦU Công nghệ tính toán song song phân cụm là một trong những công nghệ hàng đầu đuợc sử dụng trong môi trường tính toán phân tán hiệu năng cao. Đặc biệt, trong thời đại bùng nổ của khoa học kỹ thuật với nhiều công nghệ tiên tiến liên tục ra đời, công nghệ tính toán song song phân cụm ngày càng chứng tỏ ưu thế so với các công nghệ tính toán cổ điển. Các bài toán khoa học kỹ thuật ngày nay, có quy mô ngày một lớn, đòi hỏi phải có sức mạnh tính toán cực lơn mới có thể đáp ứng được. Điều đó có thấy rõ khi điểm qua danh sách các siêu máy tính hàng đầu thế giới. Trong số 500 siêu máy tính thì phần lớn được xây dựng dựa trên công nghệ phân cụm . Trong đợt thực tập này em đã có điều kiện làm quen với môi trường tính toán song song phân cụm. Và báo cáo này chính là kết quả tổng hợp những kiến thức em đã thu nhận được sau đợt thực tập này. Yêu cầu của đợt thực tập là tìm hiểu về tính toán song phân cụm từ đó xây dựng chương trình debugger cho hệ thông tính toán song song phân cụm. Báo cáo được chia làm ba phần • Phần 1 Tông quan về tính toán song song. Đây là kết quả của tuân làm việc đầu tiên trên trung tâm. Phần này trình bày những khái niệm cơ bản về hệ thống tính toán song song phân cụm, đồng thời cũng giới thiệu về cách thức lập trình song song và các thư viện hỗ trợ • Phần 2 Hệ quản lý tài nguyên và phân tải. Nội dung của phần này trình bày về hệ thống quản lý tài nguyên và phân tải công việc PBS được dử dụng trong hệ thông tính toán song song phân cụm • Phần 3 Tìm hiểu về chương trình debugger. Trên cở sở những kiến thức đã thu được từ các phần trước, phần này em tiến hành tìm hiểu cách thức xây dựng một chương trình debugger cho hệ thống, đây cũng chính là mục đích chính của nhóm HPCK45. Qua đợt thực tập em đã bước đầu làm quen với môi trường lập trình song song cả về lý thuyết lãn thực hành. Ngoài ra đợt thực tập này cũng cung cấp thêm cho em rất nhiều kinh nghiệm về làm việc theo nhóm cũng như những kinh nghiệm về cách làm việc trong thực tế sau này Tiêu Công Thắng-Lớp HTTT 4 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song Phần 1 TỔNG QUAN VỀ TÍNH TOÁN SONG SONG I. Giới thiệu về tính toán song song 1. Định nghĩa tính toán song song Một chương trình truyền thống được viết cho một máy tính tuần tự, chương trình nay khi chạy sẽ gồm một chuỗi các lệnh được viết liên tiếp được thực hiện tuần tự do máy tính chỉ có một bộ xử lý trung tâm nên tại một thời điểm chỉ có một lệnh được thực hiện. Khác với lập trình tuần tự, theo dạng đơn giản nhất, tính toán song song là việc sử dụng nhiều tài nguyên tính toán để giải quyết một bài toán.Các tài nguyên tính toán có thể bao gồm một máy tính với nhiều bộ vi xử lý, một tập các máy tính kết nối mạng hay là một sự kết hợp của hai dạng trên. Đặc điểm của bài toán có thể giải quyết được bằng hệ thống tính toán song song là có thể phân ra làm nhiều bài toán con có khả năng chay song song cùng một lúc, chính vì vậy nhờ việc thực hiện song song hoá sẽ làm cho bài toán được giải quyết nhanh hơn 2. Nhu cầu về tính toán song song Ngày nay nhu cầu về lập trìmh song song ngày càng trở nên cần thiết trong các vấn đề về kỹ thuật Nếu các bạn đã từng lập trình trong với thư viện lập trình của Matlab thì chúng ta có thể thấy matlab hỗ trở rất tốt cho các thao tác làm việc với ma trận ,do đó chúng ta sẽ không gặp bất kỳ một khó khăn nao khi làm việc với các ma trận có kích thước nhỏ. Nhưng vấn đề sẽ nảy sinh khi chúng ta càn làm việc với các ma trận có kích thước lớn hay rất lớn, lúc đó các thao tác với ma trận của matlab có thể sẽ không còn tác dụng nữa do hạn chế về bộ nhớ hoặc làm việc với tốc độ rất chậm do khối lượng phép tính quá lớn. Mọi việc cũng tương tự khi chúng ta tiến hành lập trình tuần tự theo phương pháp truyền thống. Tiêu Công Thắng-Lớp HTTT 5 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song Ngoài ra trong thực tế chúng ta còn bắt gặp các bài toán về mô phỏng thế giới thực khi đấy lượng dữ liệu vào và số lượng các phép tính là rất lớn và giải pháp sử dụng mô hình lập trình tuần tự truyền thống là hầu như không thể chấp nhận được. Trong khi đó các bài toán này nếu mô phỏng được trên máy tính sẽ tiết kiệm được rất nhiều tiền của cho việc thử nghiệm đôi khi còn rất nguy hiểm nếu tiến hành trong thực tế Vậy có giải pháp nào cho các vấn đề đã được nêu ở trên. Chúng ta có hai giải pháp cho vấn đề trên. Cách thứ nhất là chúng ta có thể sử dụng các siêu máy tính với rất nhiều bộ nhớ để giải quyết các thực hiện các bài toán trên, cách này tỏ ra đơn giản nhưng rất khó thực hiện trong điều kiện của đại đa số các nược trên thế giới vì giá thành của các siêu máy tính là rất cao. Cách thứ hai là chúng ta sẽ lợi dụng việc sự phát triển mạnh mẽ của mạng hiện nay để giải quyết các bài toán trên bằng cách kết nối các máy tính lại với nhau và cùng thực hiên bài toán đặt ra đây chính là ý tưởng chính của tính toán song song . Vậy chúng ta có thể thấy rõ tính toán song song vừa giúp chúng ta giải quyết được các bài toán có số lượng phép tính lớn đồng thời cũng giải quyết được vấn để về giá thành của hệ thống phần cứng bởi vì khi sử dụng việc kết nối các máy tính chúng ta có thể sử dụng được tài nguyên của nhiều máy tính cùng một lúc và với việc các máy tính được nối mạng ngày càng rộng dãi thì việc thực hiện kết nối là tương đối dễ dàng. Ngoài ra việc lập trình song song còn giúp chúng ta khai thác được tối đa các tài nguyên của mang máy tính trên toàn thế giới . 3. Sự phát triển của lập trình song song ngày nay Do lợi ích của việc sử dụng ứng dụng tính toán song song nên các nhà khoa học trên thế giới đã bắt tay vào nghiên cứu các vấn đề về lập trình song song từ những năm 60 của thế kỷ trước và cho đến nay đã đạt được những kết quả nhất định . Tiêu Công Thắng-Lớp HTTT 6 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song Ngày nay chúng ta đã có thể sử dụng tính toán song song vào bài toán xử lý và nhận dạng vân tay. Ơ bài toán này các dữ liệu về vân tay sẽ được lưu trữ trên các máy tính khác nhau, khi có yêu cấu nhân dạng một mẫu vân tay nào đó thì mẫu vân tay ấy phải được gửi đi đến tất cả các máy trạm và tại các máy trạm sẽ tiến hành tìm kiếm mẫu vân tay phù hợp với mẫu vân tay ban đầu đưa vào và sau đó sẽ trả kết quả về cho máy server. Như vậy việc giải quyết như trên sẽ đảm bảo việc tìm kiếm trên một nguồn dữ liệu rông lớn nhưng vẫn đảm bảo về vấn đề tốc độ tìm kiếm . Ưng dụng thứ hai mà chúng ta sẽ đề cập đến chính là bài toán khai phá dữ liệu. Đặc điểm của bài toán này là dữ liệu vào đồng loạt với số lượng lớn và nhiều thuộc tính, chính điều này sẽ dẫn đến một bất lợi khi thực hiện trên một máy tính đơn là có thể dẫn đến việc thiếu bộ nhớ do bùng nổ tổ hợp hay do có nhiều thuộc tính ở mỗi phần tử dữ liệu vì vậy sẽ sinh có nhiều thao tác cần xử lý nên nếu chay trên một máy tính đơn thì sẽ rất chậm và có thể là không thực hiện được do đó cần phải sử dụng tính toán song song để giải quyết bài toán trên để tận dụng tài nguyên bộ nhớ của toàn bộ hệ thống cũng như tài nguyên về bộ xử lý của hệ thống. Ngoài hai ứng dụng trên ngày nay tính toán song song còn được sử dụng trong các bài toán mô phỏng lại thế giới thực cũng như trong nghiên cứu khoa học, chúng ta đã ứng dụng tính toán song song vào việc mô phỏng lại các vụ thử hạt nhân hay việc mô hình hoá phân tử. 4. Phân loại các kiến trúc máy tính song song a. Phân loại kinh điển về kiến trúc máy tính của Flynn Có nhiều cách để phân loại kiến trúc của máy tính song mà một trong các cách đó là cách phhan loại đó là cách phân loại của Flynn, được chấp nhậ rộng dãi từ những năm 1966. Nguyên tắc phân loại của Flynn là phân loại các kiến trúc máy tính đa bộ vi xử lý theo hai yếu tố độc lập là lệmh và dữ liệu, mỗi yếu tố có thể phân làm hai trạng thái là : một hoặc nhiều. Như vậy ta có bốn cách phân loại như sau : Tiêu Công Thắng-Lớp HTTT 7 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song • Đơn lệnh đơn dự liệu (Single intruction, single data) : đây chíng là kiểu máy tính tuần tự. • Đơn lệnh đa dữ liệu (Single intruction, multiple data) : đây là kiểu máy tính song song mả tại mọi chu kỳ đồng hồ tất cả các bộ xử lý đều chạy chung một lệnh nhưng trên các phần dữ liệu khác nhau. • Đa lệnh đơn dữ liệu (Multiple intruction, single data) : đây là kiểu máy tính song song hầu như không xuất hiện trong thực tế . • Đa lệnh đa dữ liệu (Multiple intruction, multiple data) : đây là mô hình máy tính song song phổ biến nhất hiện nay . b. Phân loạitheo mô hình bộ nhớ • Mô hình bộ nhớ chia sẻ :đặc điểm của máy tính song loại này là các nút tính toán đều có thể truy nhập vào bộ nhớ dùng chung như là bộ nhớ toàn cục. Nhiều bộ xử lý hoạt động độc lập nhưng cùng sử dụng chung một bộ nhở, mỗi sự thay đổi nội dung các ngăn nhớ đều được các bộ vi xử lý biết .  Ưu điểm chính của mô hình này là cung cấp một vùng nhớ toàn cục do đó dễ dàng cho việc lập trình về mặt sử dụng bộ nhớ đồng thời việc trao đổi thông tin giữa các modun tính toán là tương đối nhanh chóng và dễ dàng  Nhược điểm của mô hình này chính là sự mất cân đối giữa CPU và bộ nhớ. Việc tăng CPU sẽ làm tăng thêm lưu lưọng trên đường dẫn từ bộ nhớ tới CPU. Tiêu Công Thắng-Lớp HTTT 8 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song Mô hình bộ nhớ chia sẻ • Mô hình bộ nhớ phân tán : Kiến trúc máy tính theo mô hình bộ nhớ phân tán Mô hình này yêu cầu một mạng truyền thông để kết nối các bộ nhớ của các bộ vi xử lý. Mỗi CPU đều gắn với một bộ nhớ riêng và các thao tác của mỗi CPU trên bộ nhớ cảu mình thì không được các CPU khác biết tới.  Ưu diểm của mô hình này là kích thước bộ nhớ cân bằng với số lượng các bộ vi xử lý  Nhườcđiếm chính của mô hình này chính là người lập trình phải tự thiết lập lấy phương thức trao đổi thông tin giữa các CPU trong quá trình tính toán mà việc này đôi khi là rất khó khăn. Tiêu Công Thắng-Lớp HTTT 9 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song Trong thực tế các máy tính nhanh nhất hiện nay sử dụng kiến trúc bộ nhớ lai giứa bộ nhớ chia sẻ và bộ nhớ phân tán Kiến trúc máy tính theo mô hình lai 5. Các giải thuật song song Ở trên chúng ta đã cùng tìm hiểu về tính toán song song và các úng dụng cảu tính toán song song nhưng chúng ta chuă thực sự đi sâu vào tìm hiểu làm thế nào chúng ta có thể tiến hành song song hoá bài toán và cách đánh giá độ phức tạp của thuật toán trong tính toán song song. a. Các cơ chế song song hoá • Song song về dữ liệu : đây là phương pháp thực hiện băng cách chia dữ liệu thành nhiề phần mỗi phần sẽ do một nút quản lý và như vậy khi thao tác với dữ liệu thì mỗi máy chỉ thao tac với phần dữ liệu mà mình quản lý. Cách quản lý như tthế này chính là phân nhỏ bài toán ban đầu thành các bài toán trên các đoạn dữ liệu khác nhau. • Song song hoá chức năng :chia bài toán ban đầu thành các bài toán con đảm nhiệm các chức năng khác nhau và có thể chạy đồng thời có thể cần có sự truyền tin giữa các chức năng và cần có cơ chế đồng bộ hoá b. Đánh giá độ phức tạp của các giải thuật song song Trong lập trình tuần tự truyền thống thì việc đánh giá độ phức tạp của thuật toán dựa vào số lệnh mà chương trình phải thực, thực chất là đánh Tiêu Công Thắng-Lớp HTTT 10 [...]... giá về thời gian chạy của chương trình bởi vì trong lập trình tuần tự mỗi thời điểm nhất định CPU chỉ thực hiện một dòng lệnh duy nhất mà thôi Trong lập trình song song thì mọi việc lại khác hẳn vì tại một thời điểm có thể có nhiều lệnh cùng chạy đồng thời trên nhiều CPU vì vậy cho nên có khi một chương trình gồm nhiều lệnh nhưng được thiết kế song song hoá tốt vẫn có thể chạy nhanh hơn một chưong trình. .. của bài toán Ơ trên chúng ta đã cùng tìm hiểu sơ bộ về tính toán song song tuy nhiên để phục vụ cho quá trình thực tập đạt hiệu quả trong phần tiếp theo em xin trình bầy về hệ thống tính toán bó, đây cũng là một hệ thống tính toán song rất phát triển hiện nay vầ cũng chính là đề tài nghiên cứu chính của em trong đợt thực tập này II Mô hình lập trình Mô hình lập trình trong tính toán song song gồm có... lập trình thích hợp cho việc viết các chương trình theo mô hình truyền thông điệp với mục tiêu hoạt động linh hoạt và hiệu quả MPIF, với sự tham gia của hơn 40 tổ chức, bắt đầu đưa ra chuẩn này từ năm 1992 với phiên bản 1.0, đến năm 1997 đã dưa ra phiên bản 2.0 với nhiều tính năng mới Sau đây chúng ta sẽ cùng tìm hiểu về thư viện truyền thông điệp phát triển dựa trên chuẩn MPI 1 Cấu trúc chương trình. .. thúc và lấy thông tin về môi trường Hàm khởi tạo int MPI_Init(int *argc, char **argv) Hàm kết thúc tiến trình MPI int MPI_Finalize() Hàm này dùng để giải phóng các cấu trúc dữ liệu huỷ bỏ các thao tác mà không thể kết thúc Hàm này được gọi bởi tất cả các tiến trình Nếu có 1 tiến trình nào đó không thể đạt đến hàm này thì chương trình bị treo Mỗi tiến trình có thể lấy thông tin về định danh của mình... Quan VÒ Tinh To¸n Song Song Chú ý: Định danh này của các tiến trình không phải là định danh của tiến trình mà hệ điều hành quản lý, nó chỉ dùng để phân biệt các tiến trình với nhau Nếu một chương trình MPI được khởi tạo với n tiến trình thì định danh của các tiến trình được gán từ 0 đến n-1 b Nhóm các hàm gửi nhận dữ liệu giữa hai tiến trình Có hai chế độ truyền thông giao tiếp với nhau là Blocking... hàm giao tiếp giữa nhiều tiến trình • Thao tác Broadcast : là quảng bá một khối dữ liệu từ tiến trình này sang tất cả các tiến trình khác int MPI_Bcast(void *buf, int count,MPI_Datatype dtype,int root, MPI_Comm comm) • Thao tác Gather và Scatter : đây là hai thao tác tập hợp dữ liệu từ nhiều tiến trình về một tiến trình và phân tán dữ liệu từ một tiến trình đến nhiều tiến trình • Thao tác Reduction :... tiến trình gửi Giá trị MPI_ANY_SOURCE xác định việc nhận dữ liệu từ bất cứ tiến trình nào tag là thẻ của khổi dữ liệu cần nhận về Giá trị MPI_ANY_TAG xác định việc nhận dữ liệu với giá trị thẻ bất kỳ Lỗi sẽ xảy ra nếu kích thước dữ liệu nhận về lớn hơn kích thước vùng đệm chứa nó Thông thường kích thước cùng đệm chứa dữ liệu nhận về cần phải lớn hơn hoặc bằng kích thước của khối dữ liệu sẽ nhận về Khi... thông là khá dễ dàng tuy nhiên hệ thống sẽ bị hạn chế về số nút trong mạng Trong kiến trúc của hệ thống tính toán phân cụm có ba loại chính là : beowulf, pbs và not Sau đây chúng ta sẽ cùng tìm hiểu xâu về kiến trúc beowulf vì đây là kiến trúc khá mạnh và phổ biến trên thế giới 6 Kiến trúc siêu máy tính Beowulf Đã có rất nhiều định nghĩa khác nhau về Beowulf, có nhiều người cho rằng một hệ thống máy... trình trong quá trình tính toán • Đồng bộ hoá, đây là yêu cầu không thể thiếu trong quá trình các máy tính làm việc song song Bởi vì dù bài toán đã được phân thành các bài toán con chạy song song nhưng giữa các bài toán này luôn có sự trao đổi thông tin với nhau, có khi còn sử dụng lại kết quả của nhau vì vậy việc đồng bộ háo sẽ tránh được những sai sót khi nhận tin Tiếp theo chúng ta sẽ cùng tìm hiểu. .. phần tử tương ứng của các tiến trình và kết quả được truyền về tiến trình root rbuf : địa chỉ đầu của mảng kết quả trên vùng nhớ nhận dữ liệu của tiến trình root Tiêu Công Thắng-Lớp HTTT 18 Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 PhÇn 1 Tæng Quan VÒ Tinh To¸n Song Song count : số lượng phần tử của mỗi mảng trên vùng nhớ cục bộ của các tiến trình dtype : kiểu dữ liệu của . ………………………………………………… 41 Phần 3 Tìm hiểu về chương trình debugger Debugger Interface………………………………………. 43 Khái niêm Parallel Debugger ……………………………… 43 Cách thức hoạt động của chương trình debugger …………. 44 Giao. dung của phần này trình bày về hệ thống quản lý tài nguyên và phân tải công việc PBS được dử dụng trong hệ thông tính toán song song phân cụm • Phần 3 Tìm hiểu về chương trình debugger. Trên cở. thực tập là tìm hiểu về tính toán song phân cụm từ đó xây dựng chương trình debugger cho hệ thông tính toán song song phân cụm. Báo cáo được chia làm ba phần • Phần 1 Tông quan về tính toán

Ngày đăng: 28/12/2014, 12:05

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w