Commit Graph

16602 Commits

Author SHA1 Message Date
David Anderson f4345f9dc4 - user web: various enhancements and fixes from Simek.
Fixes #1020

svn path=/trunk/boinc/; revision=22620
2010-11-03 21:48:39 +00:00
David Anderson 5d65be3216 svn path=/trunk/boinc/; revision=22619 2010-11-03 18:48:32 +00:00
David Anderson f5c3e9d802 svn path=/trunk/boinc/; revision=22618 2010-11-03 18:45:23 +00:00
David Anderson e8d931a729 - translation update
svn path=/trunk/boinc/; revision=22617
2010-11-03 18:40:15 +00:00
David Anderson e97a9177d3 - python DB layer: fields with values None or ''
where being omitted from query strings.
    This is incorrect.
    For example, suppose you have an app version with nonempty plan_class,
    then you try to add a version with no plan class.
    The query would omit the "and plan_class = ''"
    so it would match the existing app version and not add a new version.
    Reported by Rytis.
    Hopefully this won't break anything.


svn path=/trunk/boinc/; revision=22616
2010-11-03 18:25:24 +00:00
David Anderson 2d6d69ac86 - client: fix problems with job scheduling policy.
Old: job scheduling has 2 phases.
        In the first phase (schedule_cpus()) we make a list of jobs,
        with deadline-miss and high-STD jobs first.
        Keep track of the RAM used,
        and skip jobs that would exceed available RAM.
        Stop scanning when the # of CPUs used by jobs in the list
        exceeds the # of actual CPUs.

        In the 2nd phase (enforce_schedule()), we add currently running jobs
        (which may be in the middle of a time slice) to the list,
        and reorder to give priority to such jobs,
        and possibly also to multi-thread jobs.
        We then run and/or preempt jobs, keeping track of RAM used.

    Problems:
        - suppose we add an EDF 1-CPU job to the list, then a MT job.
            We'll stop at that point because #CPUs is exceeded.
            But enforce_schedule() won't run the MT job,
            and CPUs will be idle.
        - Because the list may be reordered, skipping jobs based
            on RAM is not correct, and may cause deadlines to be missed.

    New:
        - when making the job list, keep track of #CPUs used
            by MT jobs and non-MT jobs separately.
            Stop the scan only if the non-MT count exceeds #CPUs.
            This ensures that we have enough jobs to use all the CPUs,
            even if the MT jobs can't be run for whatever reason.
        - don't skip jobs because of RAM usage
        - skip MT jobs if the MT CPU count is at least #CPUs

    Notes:
        - ignoring RAM usage in phase 1 can cause idleness in some cases,
            e.g. suppose there are 4 GB of RAM and the list has
            jobs that use 3 GB, but there are also some jobs that use 1 GB.
            I'm not sure how to fix this.
        - Maybe the 2-phase approach is not a good idea.
            We did it this way for efficiency,
            so that we don't have to recompute the job list
            each time a job checkpoints.
            But this is probably not a concern,
            and I like the idea of a simpler approach,
            e.g. reducing the policy to a single comparison function.


svn path=/trunk/boinc/; revision=22615
2010-11-03 17:13:51 +00:00
David Anderson 4e10f8bb88 - client: don't preempt GPU jobs in middle of time slice
svn path=/trunk/boinc/; revision=22613
2010-11-01 21:06:30 +00:00
David Anderson ef472e3df7 - client simulator: model the scheduler's deadline check mechanism
- scheduler: improve the deadline check mechanism slightly.
    When updating "estimated delay" (a rough measure of how long
    a resource is saturated with high-priority work)
    take into account the # of instances used by the job,
    and the # of total instances


svn path=/trunk/boinc/; revision=22612
2010-11-01 16:53:41 +00:00
Rytis Slatkevičius 71785b11f3 ops: extend manage_apps to estimate feeder shmem work items for each application. Useful for projects with multiple applications and limited work supply.
svn path=/trunk/boinc/; revision=22611
2010-11-01 09:08:50 +00:00
David Anderson 617d56b856 svn path=/trunk/boinc/; revision=22610 2010-10-30 23:25:35 +00:00
David Anderson 32f1b462b9 - client: add --no_gpus cmdline option
svn path=/trunk/boinc/; revision=22609
2010-10-30 23:22:22 +00:00
David Anderson 4edfe2ec28 - client: small initial checkin for new scheduling system.
Keep track of per-project recent estimated credit

svn path=/trunk/boinc/; revision=22608
2010-10-29 23:41:34 +00:00
David Anderson a7c51c6340 - client and manager: fix notice titles
- code cleanup: please use standard coding conventions

svn path=/trunk/boinc/; revision=22607
2010-10-29 18:58:26 +00:00
David Anderson f484e732cd - web: fix next-URL mechanism for admin login (from Michael Tarantino)
svn path=/trunk/boinc/; revision=22604
2010-10-29 17:49:29 +00:00
David Anderson ac435d0857 - scheduler: don't send translatable strings to pre-6.12 clients
svn path=/trunk/boinc/; revision=22603
2010-10-28 21:46:18 +00:00
David Anderson ff7c0b058a - manager: fix non-translatable "0 bytes"
svn path=/trunk/boinc/; revision=22602
2010-10-28 20:37:50 +00:00
David Anderson b356552c9c - scheduler/feeder: add a project config option <dont_send_jobs>.
If set, the feeder doesn't read jobs into shmem,
    and the scheduler doesn't send jobs.
    Intended for use when a project wants to process
    a backlog of completed jobs and not issue more.

svn path=/trunk/boinc/; revision=22601
2010-10-28 19:02:19 +00:00
David Anderson cbdb2a536b - manager: if attaching to existing account,
don't check min passwd length

svn path=/trunk/boinc/; revision=22600
2010-10-28 04:55:04 +00:00
David Anderson 40c50852f5 - scheduler: fix logic that deals with jobs that need > 2GB RAM.
My change of 1 Oct ([22440]) required that such jobs
    be processed with 64-bit apps,
    on the assumption that 32-bit apps have a 2 GB user address space limit.
    However, it turns out this limit applies only to Windows
    (kernel and user mode share the 4GB address space; each gets half).
    On Linux, the split is 3GB user / 1 GB kernel.
    On Mac OS X, user mode and kernel mode have separate address spaces,
    each of them 4 GB.


svn path=/trunk/boinc/; revision=22599
2010-10-27 22:58:16 +00:00
Rom Walton 884549c695 Quick Updates
svn path=/trunk/boinc/; revision=22598
2010-10-27 17:46:53 +00:00
David Anderson 785279a327 - client: linux compile fix
- client: small fix for GPU scheduling
    (use anticipated debt instead of STD)

svn path=/trunk/boinc/; revision=22596
2010-10-26 19:47:12 +00:00
David Anderson 8a23379003 - client: update STD of ineligible projects by decay only.
Not sure why, but this eliminates gradual negative drift.

svn path=/trunk/boinc/; revision=22594
2010-10-23 22:19:48 +00:00
Rom Walton 3f88198aef Quick Updates
svn path=/trunk/boinc/; revision=22592
2010-10-22 21:30:12 +00:00
David Anderson a133a42dd7 - client simulator: no defaults for app params (fpops_est, latency_bound).
They can be determined implicitly by WUs/results,
    or explicitly in the <app> record.
    If you do neither, the app is ignored.

svn path=/trunk/boinc/; revision=22591
2010-10-22 18:35:06 +00:00
Rom Walton e3df698e5e Update Translations
svn path=/trunk/boinc/; revision=22571
2010-10-21 14:59:47 +00:00
Rom Walton c8cb3ae3cc Update Translations
svn path=/trunk/boinc/; revision=22568
2010-10-21 14:56:09 +00:00
Rom Walton 4aced4b519 Quick Updates
svn path=/trunk/boinc/; revision=22567
2010-10-21 14:55:01 +00:00
David Anderson e6431bfbde - client: msg tweak
- client: ignore exclusive apps including "boinc"
- client simulator: fixes

svn path=/trunk/boinc/; revision=22566
2010-10-20 23:45:49 +00:00
Rom Walton 3d6368114d Updates
svn path=/trunk/boinc/; revision=22564
2010-10-20 20:03:38 +00:00
Rom Walton 8becdd4299 Quick Updates
svn path=/trunk/boinc/; revision=22562
2010-10-20 19:05:55 +00:00
Bernd Machenschalk a73bbac1dc lib:
- fixed whitespace error in Makefile.mingw                                                                                                                                                  
        - build and install svn_version.h in Makefile.mingw                                                                                                                                         
        - fixed boinc_win.h for MinGW gcc-4                                                                                                                                                         
        - not sure why client_msgs.h was ever included in procinfo_unix.cpp,                                                                                                                      
          but in current code caused a nasty trail of includes breaking the                                                                                                                         
          Linux build, so removed it

svn path=/trunk/boinc/; revision=22561
2010-10-20 11:28:02 +00:00
Charlie Fenton 2201bfec30 lib: Display message if attempting backtrace on a PowerPC Mac running under OS 10.5.x
svn path=/trunk/boinc/; revision=22559
2010-10-20 03:11:45 +00:00
Rom Walton 8f58adc057 - MGR: Add missing keyboard shortcut for the Event Log
- MGR: Add missing ellipses for the new instance of BOINC Manager and
        Event Log.
    - MGR: Display a simple message when saying that there are no notices
        to be displayed when the client reports there are zero notices.

    clientgui/
        AdvancedFrame.cpp
        NoticeListCtrl.cpp

svn path=/trunk/boinc/; revision=22558
2010-10-19 19:28:29 +00:00
David Anderson 3de15a592d - client simulator: various fixes
svn path=/trunk/boinc/; revision=22555
2010-10-19 15:48:33 +00:00
Charlie Fenton 9daa224abb Mac: Update XCode project for new source files client/current_version.cpp,.h
svn path=/trunk/boinc/; revision=22554
2010-10-18 23:33:56 +00:00
David Anderson c031ea2517 - client: notice debugging
svn path=/trunk/boinc/; revision=22553
2010-10-18 21:03:07 +00:00
David Anderson 0802767209 svn path=/trunk/boinc/; revision=22552 2010-10-18 20:55:03 +00:00
David Anderson 9f962b3311 - Win build fix
svn path=/trunk/boinc/; revision=22551
2010-10-18 20:54:33 +00:00
David Anderson 9d0891dc16 svn path=/trunk/boinc/; revision=22550 2010-10-18 20:31:54 +00:00
David Anderson dd2d5bd63f - client: on startup, generate a message and notice
about new client version if needed

svn path=/trunk/boinc/; revision=22549
2010-10-18 20:31:27 +00:00
David Anderson 33713781d1 - client: distinguish between messages to be displayed as HTML
(e.g. "Download new client here" link) and others
		(e.g. "Bad tag in cc_config.xml: <foo>").
	- code cleanup; move show_message from main.cpp to client_msgs.cpp

svn path=/trunk/boinc/; revision=22548
2010-10-18 20:09:51 +00:00
Rom Walton 33ea737f0b - MGR(WIN): While it is a perfectly valid thing to use FindWindow() and
ShowWindow() on an application frame to restore an application from
        a minimized state or a hidden state on Windows(75% of the UI test 
        automation would fail at Microsoft without this ability), it appeartly
        isn't for other platforms.  wxWidgets is or appears to be tracking window
        state internally, which leads to problems when the OS restores the window
        and the rest of the framework doesn't know about that change in state.
        Certain window events were being ignored (like WM_CLOSE, menu selection
        events, etc.). So replace the previous mechinism for bringing an existing
        instance of the BOINC Manager to the foreground by creating a new global
        window message which is tracked by the system tray icon.  When the new
        global message is fired make sure the CBOINCGUIApp::SetActiveGUI() function
        is called to restore the window state which in turn updates all the internal
        framework data structures.
        
    clientgui/
        BOINCGUIApp.cpp
    clientgui/
        BOINCTaskBar.cpp, .h
    clientgui/msw/
        taskbarex.cpp, .h

svn path=/trunk/boinc/; revision=22547
2010-10-18 19:21:46 +00:00
David Anderson 020a4d4ed1 - user web: in RSS item for private message, don't say anything
about the message (sender, title, or content)
- user web: don't send an RSS item for a thread with no posts (i.e., hidden)
- client simulator: support global_prefs_override.xml

svn path=/trunk/boinc/; revision=22545
2010-10-17 20:12:14 +00:00
David Anderson 612362d6dc - bug fix for the above
svn path=/trunk/boinc/; revision=22544
2010-10-17 18:02:40 +00:00
David Anderson 575718e420 - client: delete a notice if it's no longer in the RSS feed.
E.g., if a project deletes a news item, remove it from notices.
- notices RSS: remove the "since_time" mechanism
    (an optimization that conflicts with the above)

svn path=/trunk/boinc/; revision=22543
2010-10-17 04:01:36 +00:00
Charlie Fenton fda937f214 lib: Fix problems with Mac backtrace code: use atos only if present, etc.
svn path=/trunk/boinc/; revision=22540
2010-10-16 11:58:41 +00:00
Charlie Fenton 802b7d9516 Release Mac BOINC 6.12.2 to alpha test
svn path=/trunk/boinc/; revision=22539
2010-10-16 02:58:31 +00:00
Charlie Fenton 7f4ed317f3 Release Mac BOINC 6.12.2 to alpha test
svn path=/trunk/boinc/; revision=22538
2010-10-16 02:55:33 +00:00
David Anderson 7bd620e6b5 - scheduler: instead of "app is not available for your type of computer",
say "app is not available for Microsoft Windows (98 or later) running on an Intel x86-compatible CPU" (or whatever)


svn path=/trunk/boinc/; revision=22537
2010-10-15 20:25:51 +00:00
David Anderson c9be64765c - client: use project STD, rather than arrival time,
as the major criterion in choosing non-EDF GPU jobs.
    GPU scheduling now respects resource share,
    and as a result STD should no longer diverge.
- client simulator: various improvements, most notably
    that we now generate gnuplot graphs of all debt types

NOTE: the client problem was found and fixed using the simulator!


svn path=/trunk/boinc/; revision=22536
2010-10-15 20:16:00 +00:00