Przepisać skrypt na C lub C++
Dzień dobry
Istnieje skrypt napisany w Pythonie, który jest bardzo wolny, przetwarzanie 1 MB danych zajmuje ponad 25 sekund
1. Problem w kodzie (techniczny):
Konkretnie — w generate_auto_seed() oraz rank_two_symbols_optimized()
Zajmują one ~90% całego czasu wykonania skryptu
Jest to związane z:
przeszukiwaniem każdego bitu w długiej tablicy (0 i 1)
obliczaniem dużego rangi permutacji (operacja matematycznie trudna)
używaniem dużych liczb (często z współczynnikami dwumianowymi)
potrzebny specjalista, który:
Rozumie algorytmiczną istotę rangowania permutacji,
Umie pracować z optymalizacją pamięci, wątkami i dużymi liczbami,
Może zrealizować blokowe przetwarzanie tablicy 0/1 na niskim poziomie.
Główną istotą jest szybkość - pożądana szybkość 1-3 sekundy
Równolegle - praca nad seed
Proszę przesłać zgłoszenie, jeśli będziecie w stanie to zrealizować.
Dziękuję
Opinia zleceniodawcy o współpracy z Roman Smolyakov
Przepisać skrypt na C lub C++Roman zostawił we mnie bardzo miłe wrażenie - szybko i jakościowo wszystko zrobił.
Problemy po prostu nie miały szans)
Opinia freelancera o współpracy z Roman Freelancer
Przepisać skrypt na C lub C++Wszystko dobrze z zamawiającym! Będziemy pracować dalej! Proszę się zgłaszać!
-
1 dzień365 PLN
235 1 dzień365 PLNCześć!
Twój skrypt jest wolny z powodu dwóch funkcji:
generate_auto_seed() — enumeracja bitów, praca z dużymi liczbami.
rank_two_symbols_optimized() — obliczanie rangi permutacji (ciężkie operacje kombinatoryczne).
Co zamierzam zrobić:
…
1. Optymalizacja algorytmu
Zamienię enumerację na algorytm O(n) do rangi sekwencji binarnych (analogicznie do Kombinatorycznego Systemu Liczbowego).
Wstępnie obliczę współczynniki dwumianowe w O(n²) raz, a nie w pętli.
2. Przyspieszenie o 10-100 razy
Przepiszę krytyczne części w Cythonie (usunięcie narzutu Pythona).
Dodam kompilację JIT Numba dla matematyki.
Jeśli będzie potrzebne — instrukcje SIMD (AVX2) za pomocą rozszerzeń C.
3. Równoległość i pamięć
Podzielę dane na bloki, przetworzę w 4-8 wątkach (przetwarzanie równoległe).
Zamienię listy na numpy.ndarray (dtype=uint8), aby zaoszczędzić pamięć.
4. Gwarancje
Pierwsze 500 KB zostanie przetworzonych w ≤3 sekundy w ciągu 2 dni.
Ostateczny wynik to 1-3 sekundy/MB (lub zwrócę pieniądze za ulepszenia).
Dlaczego ja?
Ostatnio przyspieszyłem podobny kod do generacji nasion w kryptografii (z 30 sek do 0,8 sek).
Jestem gotów pokazać prototyp na pierwszych 100 linijkach twoich danych za darmo.
Co powinienem wysłać:
Źródła generate_auto_seed() i rank_two_symbols_optimized().
Przykład danych wejściowych (tablica bitów 0/1).
Dokładne wymagania dotyczące środowiska (Python 3.10? Linux/Windows?).
Zaczynam dzisiaj. Czekam na twoje dane!
Z poważaniem,
Ziqo,
P.S. Jeśli masz jakiekolwiek wątpliwości, mogę przeprowadzić darmową analizę 10-20 linijek kodu i pokazać, jak je przyspieszyć.
-
Oferta, która wygrała1 dzień346 PLN
1928 29 1 1 Oferta, która wygrała1 dzień346 PLNDzień dobry! Zawsze jestem w kontakcie, aby pomóc. Piszcie, omówimy! I nie zapomnijcie zajrzeć do portfolio — jest tam wiele interesujących rzeczy!
-
2 dni365 PLN
626 6 0 2 dni365 PLNCześć, zainteresowała mnie twoja oferta, czy mogę dowiedzieć się o niej więcej w wiadomości prywatnej.
-
Доброго дня. Будь ласка, надайте зразу посилання на ваш код, git ... дякую.
-
зроблю швидко пишіть
-
Доброго дня! надайте код проекту
-
Доброго дня, можна якось ознайомитись із проектом?
-
Aktualne zlecenia dla freelancerów w kategorii C i C++
Rozwój oprogramowania dla Arduino (moduły RF 3–7,5 GHz, automatyczne skanowanie częstotliwości)Należy opracować system na Arduino do automatycznego wyszukiwania aktywnego analogowego sygnału wideo oraz automatycznego dostosowywania nadajnika do wykrytej częstotliwości.Planowane jest wykorzystanie trzech oddzielnych modułów odbiorczo-nadajnych: 3000–4200 MHz; 4900–6000… C i C++, Systemy wbudowane i mikrokontrolery ∙ 16 godzin 15 minut temu ∙ 4 oferty |
Czarna Ukraina (projekt RP na bazie MTA)
4237 PLN
|
Inżynier infrastruktury proxy mieszkalnychBudujemy sieć proxy dla użytkowników od podstaw — w pełni własną, bez dostawców zewnętrznych. Potrzebujemy jednego wyjątkowego inżyniera sieci, który zbuduje całą podstawę techniczną. Co zbudujesz: - SDK w tle dla Androida, które kieruje ruch proxy przez urządzenia użytkowników… C i C++, DevOps ∙ 6 dni 12 godzin temu ∙ 13 ofert |
Dobrobka w istniejącej wersji 1c detalicznego bloku dla RC (centrum dystrybucji)Ogólnie wyjaśnię, co mamy za bazę - jest ogólny serwer, gdzie znajduje się baza Detal (gdzie rejestrowane są wszystkie przychody) - baza UTP, do której przelewają się wszystkie sprzedaże - liczy się marża, stany magazynowe - małe bazy detalicznych sklepów. W przypadku wymian,… C i C++, C# ∙ 7 dni 3 godziny temu ∙ 6 ofert |
Mistrzowska program «KONSTRUCTOR»
15 253 PLN
Szukamy bardzo doświadczonego programisty C++ do modernizacji istniejącego oprogramowania (programu głównego). Program odpowiada za tworzenie pochodnego oprogramowania reprezentującego sesje audiowizualnej korekcji psychologicznej. Obecna wersja jest napisana w czystym WinAPI… C i C++, Aplikacje desktopowe ∙ 12 dni 6 godzin temu ∙ 20 ofert |