Potrzebuję pomysłów na programy współbieżne do inżynierki, nie chcę robić nic ambitnego bo już pracuję, więc inżynierkę chcę zrobić by zdać ( ͡°͜ʖ͡°) Technologia to #java i #cpp Na razie wpadłem na: -Kopiowanie plików -Szukanie liczb pierwszych -Quick sort/merge sort Bardzo proszę na sugestie (。◕‿‿◕。) #programowanie #studaza #it #kiciochpyta
@kacpervfr: tylko chodzi raczej o sens. Nie wiem czy dyski SSD potrafią takie operacje wykonywać współbieżnie (z resztą i tak wszystko leci przez szynę i kontroler nad którą defacto nie masz kontroli) ale HDD na pewno nie.
@horus666 : potrafią - w przypadku SSD jest duży zysk ze współbieżności; w przypadku hdd w pewnych sytuacjach też jest ale nie wynika to z tego że dysk umie czytać równolegle (bo nie umie) a z tego że większa kolejka zadań pozwala lepiej zoptymalizować kolejność operacji przez system operacyjny
@Krolik: No dobrze ale czy w takim razie nie wchodząc w szczegóły implementacji sterownika możliwe jest ręczne kolejkowanie operacji na poziomie aplikacji?
@kacpervfr: Symulator windy, skrzyżowania samochodowego. Albo jakiś bot co będzie biegał po sieci Wszystko już dawno zrobione, opisane, jak będziesz w stanie odpowiedzieć na kilka pytań o swoim projekcie to obronisz pracę.
@horus666: w Linuksie jest możliwe. Po prostu musisz wysyłać zadania odczytu plików w takiej kolejności jak te pliki są umieszczone na dysku. I jest wtedy tak ok 10x szybciej.
@Krolik: Ale to, generalnie patrząc na zagadnienie z punktu widzenia OP'a który chciałby zrównoleglić cały proces we własnej aplikacji, jest w stanie coś takiego osiągnąć? Bo na podstawie tego, co napisałeś wnioskuję, że nie bardzo.
@kacpervfr porównywanie wydajności to nie taka prosta sprawa. Lepiej nie polegać na takich operacjach jak kopiowanie plików. Quick sort brzmi fajnie, ale problemem może okazać się ilość liczb do wygenerowania i trzymania w pamięci, żeby odpowiednio dociążyć program.
@horus666: jest w stanie, ale inna kwestia czy ma skille do tego. Bo tego nie ma w API Javy - to wymaga z korzystania z API systemu w C i czytania bardzo trudnej dokumentacji do systemu ;)
@SpinOff: zgadzam się że porównywanie wydajności, zwłaszcza między językami jest zadaniem trudnym i w zasadzie nie na poziom pracy inżynierskiej. No chyba że dla mega wymiatacza pasjonata. Tzn można coś zrobić, ale to coś będzie miało zerową wartość merytoryczną, natomiast tak zrobić aby to było do czegoś użyteczne, a wnioski prawidłowe, no to mocno nietrywialna sprawa.
Ok, napiszesz algorytm do liczb pierwszych w Javie i C++, uruchomisz, zmierzysz czas. Wyjdzie Ci
Na razie wpadłem na:
-Kopiowanie plików
-Szukanie liczb pierwszych
-Quick sort/merge sort
Bardzo proszę na sugestie (。◕‿‿◕。)
#programowanie #studaza #it #kiciochpyta
źródło: programming-challenges-v4.0
Pobierz@horus666: Dla mnie może mieć to zerowy sens, mam porównać wydajność cpp vs java. Chcę zrobić inżynierkę byle była
@horus666: to się doda do wniosków ( ͡° ͜ʖ ͡°)
Symulator windy, skrzyżowania samochodowego.
Albo jakiś bot co będzie biegał po sieci
Wszystko już dawno zrobione, opisane, jak będziesz w stanie odpowiedzieć na kilka pytań o swoim projekcie to obronisz pracę.
Algorytm liczb pierwszych brzmi spoko.
No dobra, nie będę złośliwy, ułatwię, proszę, to jest link: https://www.kernel.org/doc/Documentation/filesystems/fiemap.txt
Ok, napiszesz algorytm do liczb pierwszych w Javie i C++, uruchomisz, zmierzysz czas. Wyjdzie Ci