Na jakim poziomie jest TO zadanie w skali od 0-10?

0

Bo to zadanie na zaliczenie z pewnego przedmiotu trwającego jeden semestr i chciałbym wiedzieć na jakim poziomie uczelnia stoi ->

1)Skopiować plik input.dat z katalogu w:\pw. Plik ten zawiera 2^24 liczb typu double na dysk
lokalny (rozmiar: 16M liczb double czyli 128MB). Uwaga! samo skopiowanie jeszcze nie jest
podstawą zaliczenia :-)
2) Zadanie polega na znalezieniu najmniejszej i największej liczby typu double znajdującej się w
pliku. Można posłużyć się dowolnym językiem programowania (np. Java, c#, C++)
3) (Poziom podstawowy) Aplikacja sekwencyjna przeglądająca zawartość pliku. Zastanowić się
nad odpowiednim buforowaniem. Nie czytać całego pliku do bufora ale też nie przetwarzać
pojedynczych liczb. Posługujemy się funkcjami np. fread i fopen lub CreateFile i ReadFile.
4) Wykorzystać przetwarzanie współbieżne w celu przyspieszenia działania programu. Liczba
wątków roboczych ma być parametrem (określonym za pomocą dyrektywy #define ).
5) Należy zadbać nie tylko o zrównoleglenie przeszukiwania ale również o zrównoleglenie
operacji czytania pliku i szukania. Tj. gdy jeden wątek czyta inne już mogą przeszukiwać swoje
bufory.
6) Zadbać o optymalne wykorzystanie pamięci. Tzn. wątki działają na buforach o ograniczonym
rozmiarze.
7) (Dodatkowo) Objaśnić w jakich przypadkach może opłacić się również zrównoleglenie
operacji IO działających na jednym pliku. Wątki w takim przypadku otworzyłyby każdy
oddzielnie plik do czytania w trybie współdzielonym.
8) (Dodatkowo) Ustalić eksperymentalnie optymalny rozmiar bufora dla operacji czytania.
9) (Dodatkowo) Sformułować wnioski dot. optymalnej liczby równoległych wątków.

0

Zależy czym jest - wszystko zależy od skali, ta 10:

  • może to być np nowy system operacyjny
  • albo np zadanie maturalne z informatyki.
1

(np. Java, c#, C++)

a nastepnie jest

określonym za pomocą dyrektywy #define

wiec ja bym powiedzial ze zaden z tych jezykow tylko C (bo w nim uzywa sie define, w C++ juz niekoniecznie). Do tego duzo wymagan prosto pod C / C++. Bo jak liczony w javie/c# jest GC?

  1. (Dodatkowo) Ustalić eksperymentalnie optymalny rozmiar bufora dla operacji czytania.
  2. (Dodatkowo) Sformułować wnioski dot. optymalnej liczby równoległych wątków.

to zalezy juz od komputera. Nie trzeba zadnych eksperymentow.

Zadanie fajne ale zalezy ile czasu jest potrzebne. W 3 godziny ciężej byłoby napisać z glowy (bo zakładam, że nie można uzywać internetu, gdyby był dostępny internet w celu sprawdzenia dokumentacji to w 3 godziny idzie się zmieścić)

dla studenta ktory nie zna sie w ogole na programowaniu 8/10

0
_13th_Dragon napisał(a):

Zależy czym jest - wszystko zależy od skali, ta 10:

  • może to być np nowy system operacyjny
  • albo np zadanie maturalne z informatyki.

No najlepszą opcją byłoby chyba gdybyście sami ustalili sobie czym jest 10 (dla Was) i mi napisali.

0

Według mnie jeszcze bym sobie z 2 zadaniem dał radę, a to pierwsze zadanie chodziło po prostu o skopiowanie tego pliku czy ja czegoś do końca niezrozumiałem bo to chyba nie jest dziedzina programowania. te zadania są według mnie w skali 10.

1

Ciężko ocenić poziom studiów na poziomie zadania :) Jedyne co można stwierdzić że to zadanie jest ciekawe i na pewno wymagające.
Dla osoby która na co dzień pracuje będzie to jeden dzień pracy z kawą w ręku oraz filmikami na drugim monitorze. Czyli jakieś 5 SP :p

Dla studenta min 7/10, przy założeniu że wykona to najbardziej optymalnie i przeanalizuje wszystkie zagwostki.

0

A ja się pytam jakim cudem wielowątkowość ma pomóc w odczycie pojedynczego pliku? To zadanie jest bez sensu nie ma tam miejsca na wielowątkowość dla mnie punkt 1 i 3 całkowicie wykluczają zastosowanie wątków w tym zadaniu.

0

@pol90 studenta drugiego roku, ale nie informatyki

1 użytkowników online, w tym zalogowanych: 0, gości: 1